Включить CORS в WCF сервис и получать ответы на запросы
Я отправляю запрос на WCF из моего веб-приложения через js. Когда всё работает на одном хосте, то данные отправляются и ответ получаю. Но когда я развертываю приложение WCF на другом сервере, то возникали ошибки и данные не отправлялись.
Я узнал что нужно добавить поддержку CORS, и добавил в global.asax следующий код:
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.HttpMethod == "OPTIONS")
{
Response.AddHeader("Access-Control-Allow", "*");
Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
Response.AddHeader("Access-Control-Allow-Headers", "*");
Response.AddHeader("Access-Control-Max-Age", "1728000");
Response.End();
}
else
{
Response.AddHeader("Access-Control-Allow-Credentials", "true");
if (Request.Headers["Origin"] != null)
{
Response.AddHeader("Access-Control-Allow", "*");
Response.AddHeader("Access-Control-Allow-Origin", Request.Headers["Origin"]);
}
else
{
Response.AddHeader("Access-Control-Allow", "*");
Response.AddHeader("Access-Control-Allow-Origin", "*");
}
}
}
Частично это помогло. Делается POST запрос из js сначала он отправляется OPTIONS который успешно возвращает 200, а после POST запрос с отправкой файла, и он выполняется в принципе успешно, НО я должен получить ответ от сервера в формате json. Но он не приходит.
В чём может быть проблема ? Возможно надо что-то еще прописать в global.asax или в web.config
UPD: Проблема решена. Необходимо было настроить заголовки в IIS