Azure WebアプリケーションがAzure Web APIリソースを要求しているときに、要求されたリソースエラーに「Access-Control-Allow-Origin」ヘッダーが存在しませんローカルでは正常に動作していますが、Azure Webサイトにアクセスしているときに上記のエラーが発生します。以下要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーが存在しません。 Origin 'http://xxxxx.azurewebsites.net'はアクセスが許可されていません
コードである:JS
角度サービス:
function industrysearchservice(appConfig, $q) {
var dsIndustry;
var schemaIndustry = {
data: function (response) {
return response.value;
},
total: function (response) {
return response['@odata.count'];
},
model: {
id: "Industry"
}
};
getIndustries = function (filter) {
var deferred = $q.defer();
var dsFetch = new kendo.data.DataSource({
batch: false,
schema: schemaIndustry,
type: "odata-v4",
serverFiltering: true,
serverSorting: true,
serverPaging: true,
pageSize: 20,
transport: {
read: {
url: appConfig.odataUri + "/PSellerIndustryFilter",
dataType: "json",
data: {
$select: "Industry"
}
}
}
});
if (!angular.isUndefined(filter))
dsFetch._filter = filter;
dsFetch.fetch().then(function() {
dsIndustry = dsFetch;
deferred.resolve(dsIndustry);
});
return deferred.promise;
}
return { getIndustries: getIndustries };
}
コントローラ方法:
public class PSellerIndustryFilterController : ODataController
{
PSellerContext db = new PSellerContext();
private bool PSellerIndustryExists(System.Guid key)
{
return db.PSellerIndustryFilters.Any(p => p.Industry == key.ToString());
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
[EnableQuery]
public IQueryable<PSellerIndustryFilter> Get()
{
return db.PSellerIndustryFilters;
}
[EnableQuery]
public SingleResult<PSellerIndustryFilter> Get([FromODataUri] System.Guid key)
{
IQueryable<PSellerIndustryFilter> result = db.PSellerIndustryFilters.Where(p => p.Industry == key.ToString());
return SingleResult.Create(result);
}
}
これは、CORSの問題で、それに関連する答えを確認してください。このように:http://stackoverflow.com/a/24097520/1658906 – juunas