#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
}
также путем настройки
…
…
Вызов 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. многим браузерам не нравятся
*
значения as3. Я также пробовал этот 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>