#asp.net #iis #cors #preflight
#asp.net #iis #cors #предполетная проверка
Вопрос:
У меня есть двоичные файлы только для ASP.NET приложение, и я пытаюсь вывести его на свой местный. У меня возникли некоторые проблемы с CORS при попытке поднять его.
Access to XMLHttpRequest at 'http://xx.xx.xx.xx:8080/webapi/' from origin
'http://xx.xx.xx.xx:8089' has been blocked by CORS policy:
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Я попробовал несколько вещей, включая установку модуля CORS в IIS отсюда https://www.iis.net/downloads/microsoft/iis-cors-module
Я также попытался изменить свой Web.Config, чтобы добавить следующее. Все, что я пытаюсь сделать, это просто заставить его работать для начала, поэтому я хочу разрешить прохождение всех запросов.
<system.webServer>
<cors enabled="true">
<add origin="*" allowed="true" />
<add origin="http://*" allowed="true" />
</cors>
но я все равно получаю ту же ошибку. Странно то, что и webapi, и ASP.NET клиент находится на одном компьютере на разных портах 8080 и 8089.
Комментарии:
1. Привет, проблема решена? Если вы считаете, что мой ответ полезен для вас, вы можете пометить его как ответ.
2. Привет всем, нет, проблема не была решена. Я все еще пытаюсь кое-что сделать, чтобы понять, как я могу это исправить.
3. Разве это не может быть решено с помощью глобального файла?
Ответ №1:
Сначала вы должны убедиться, что вы успешно установили модуль cors, затем вам нужно добавить следующую конфигурацию в web.config приложения:
<system.webServer>
<cors enabled="true">
<add origin="*" allowed="true" />
</cors>
</system.webServer>
Этот узел конфигурации находится под узлом конфигурации.
Если проблема все еще не решена, вы также можете решить междоменную проблему, добавив следующий код в глобальный файл:
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "*");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "*");
HttpContext.Current.Response.End();
}
}