Я создаю свой собственный webapi, унаследованный от SxcApiController, но когда я пытаюсь использовать этот API из другого домена, я получаю сообщение:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
У меня есть следующие атрибуты в методе моего контроллера:
[HttpPost]
[DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.Anonymous)]
Я называю свой метод следующим образом:
$.ajax({
url: apiurl,
type: 'POST',
//headers: {
// 'Access-Control-Allow-Origin': '*'
//},
//crossDomain: true,
dataType: 'json',
data: data,
success: function (d) {
debugger;
alert("Saved Successfully");
},
error: function (d) {
debugger;
alert("Error please try again");
}
});
, если я включаю crossDomain и добавляю заголовок, ошибка изменяется на:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Я думаю, что SxcApiController унаследован от DNNApi Controller, а также не знаю, как включить CORS на DNN
Что еще мне не хватает, чтобы включить CORS для этого метода?
============== edit 1 ================
Я добавил это в web.config, где находится api:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
и теперьошибка:
401 (Unauthorized)
Что еще мне не хватает?
============== edit 2: Теперь все в порядке ================
Я добавил эти атрибуты в свой метод, и теперь все в порядке:
[HttpPost]
[AllowAnonymous]
[DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.Anonymous)]