Я хочу разрешить доступ ко всем источникам с включенной базовой аутентификацией в Web API, но всякий раз, когда я пытаюсь вызвать API через ajax, выдается сообщение об ошибке
В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».
(Выпуск CORS)
Я попробовал приведенный ниже фрагмент (в webapiconfig).
В localhost он работал нормально, но после размещения в IIS снова выдает ту же ошибку.
var corsAttr = new EnableCorsAttribute("*", "*", "*") { SupportsCredentials = true };
config.EnableCors(corsAttr);
Я реализовал базовую аутентификацию по ссылке ниже:
https://www.c -sharpcorner.com / блоги / базовая аутентификация-в-WebAPI
Также попытался прокомментировать вышеупомянутый фрагмент и
добавление строк ниже в Web.config, но это тоже не удалось
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*"/>
<add name="Access-Control-Allow-Headers" value="Authorization, Content-Type"/>
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE"/>
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
AJAX вызов:
function post()
{
var data = {xyz};
$.ajax({
url : 'http://localhost:8080/api/demo',
type: 'POST',
dataType: 'json',
data: data,
headers: { 'Authorization': 'Basic ' + btoa('abc' + ":" + 'xyz') },
success: function (response) {
alert('Success');
},
error: function (response) { alert('Error'); }
});
}
Я ожидаю, что мой API должен быть доступен с учетными данными независимо от источника.