Как включить доступ ко всем источникам в Web API с включенной базовой аутентификацией? - PullRequest
0 голосов
/ 02 мая 2019

Я хочу разрешить доступ ко всем источникам с включенной базовой аутентификацией в 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 должен быть доступен с учетными данными независимо от источника.

1 Ответ

0 голосов
/ 03 мая 2019

Используйте приведенную ниже команду, чтобы отключить ту же политику происхождения в Chrome.

1.Закройте Chrome.

2.Открытый запуск.

3.Тип chrome.exe --user-data-dir = "C: / Chrome dev session" --disable-web-security

и попробуйте вызвать API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...