Проблема Cors конкретно в Internet Explorer XMLHttpRequest: ошибка сети 0x80070005, доступ запрещен

#ajax #asp.net-ajax #internet-explorer-11 #asp.net-core-webapi #asp.net-core-2.1

#ajax #asp.net-ajax #internet-explorer-11 #asp.net-core-webapi #asp.net-core-2.1

Вопрос:

Проблема Cors конкретно в Internet Explorer только при вызове API из вызова ajax.

1) Тип содержимого заголовка запроса отсутствовал в списке заголовков, разрешающих управление доступом 2) XMLHttpRequest: ошибка сети 0x80070005, доступ запрещен.

Я пытался следующим образом

    xhrFields: {
     withCredentials: true
    }
  

также путем настройки

  • Междоменный: верно
  • заголовки: { ‘Access-Control-Allow-Origin’: ‘*’ },
  • Вызов Ajax

         var url = "https://dev-connectivity.dummylink";
     var data = JSON.stringify({    
        "lang": "en",
        "ClientId": "asdfasf3452345c42352345c",
        "CountryCode": "34"
    });  
    
         $.ajax({
        url: url,
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        headers: {
            'Access-Control-Allow-Origin': '*' },
        data: data,
        success: function (data) {
            alert("tets");
        },
        error: function (error) {
           alert("error");
                    }
    });
      

    //Мой код Webconfig api

          <httpProtocol>
        <customHeaders>
          <remove name="Access-Control-Allow-Origin" />
          <add name="Access-Control-Allow-Origin" value="*" />
          <add name="Access-Control-Allow-Methods" value="*" />
          <add name="Access-Control-Allow-Headers" value="*" />
        </customHeaders>
      </httpProtocol>
      

    // также включение Cors при запуске

               services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
            {
                builder.AllowAnyMethod()
                    .AllowAnyHeader();
            }));
      

    app.UseCors(«CorsPolicy»);

    Комментарии:

    1. headers: { 'Access-Control-Allow-Origin': '*' }, бесполезен при вызове Ajax.

    2. многим браузерам не нравятся * значения as

    3. Я также пробовал этот var url = » dev-connectivity.dummylink «; заголовки: { ‘Access-Control-Allow-Origin’: url },

    4. Пожалуйста, попробуйте перейти в меню Свойства обозревателя> Безопасность> Надежные сайты и добавить домен в список надежных сайтов. еще одна вещь, которую вы можете попробовать, это перейти на вкладку Безопасность (Свойства обозревателя> Вкладка Безопасность> Пользовательские настройки), включить следующий параметр: Разное> Доступ к источникам данных в разных доменах. Вы можете попробовать протестировать это на своей стороне и сообщить нам о результатах вашего тестирования.

    Ответ №1:

    IE не принимает заголовок типа содержимого, если вы указали * в своем файле web.config, поэтому, чтобы устранить эту проблему, вам необходимо вручную добавить заголовок типа содержимого в список Access-Control-Allow-Headers в вашем файле web.config.

       <customHeaders>
         <remove name="Access-Control-Allow-Origin" />
         <add name="Access-Control-Allow-Origin" value="*" />
         <add name="Access-Control-Allow-Headers" value="Content-Type, Any-Other-Header" />
      </customHeaders>