Ошибка CORS Ответ на предварительный запрос не проходит проверку контроля доступа - PullRequest
0 голосов
/ 29 октября 2018

Я получаю CORS ошибку в проекте asp.net web api:

Доступ к XMLHttpRequest по адресу http://abc.xyz.in/api/Sample/loginAPI' из источника 'http://localhost:8000' заблокирован политикой CORS: Ответ на предполетный запрос не проходит проверку контроля доступа: HTTP не имеет статуса ok.

Даже я правильно настроил cors. Это мой WebApiConfig.cs:

config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute("API Default", "api/{controller}/{action}/{id}",
new { id = RouteParameter.Optional });

EnableCorsAttribute cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);

var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);

Код моих контроллеров:

[EnableCors(origins: "*", headers: "*", methods: "*")]
[HttpPost]
public IHttpActionResult loginAPI()
{
//code here
}

Добавлен этот код в Global.asax файле:

 protected void Application_BeginRequest()
        {
            if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
            {
                HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE, OPTIONS");
                HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
                HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
                HttpContext.Current.Response.End();
            }
        }

Я также добавил это в мой web.config файл:

 <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
        <add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" />
        <add name="Access-Control-Allow-Credentials" value="true" />
      </customHeaders>
    </httpProtocol>

Как мне решить это? Любая помощь или предложение будет высоко ценится. Спасибо !!

...