2016-04-08 2 views
1

Веб-API от IIS 7.5 не отвечает за Chrome & Firefox. Я получаю следующую ошибку в chrome Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе. Origin 'http://10.xx.xx.xx:81' поэтому не разрешен доступПроблема CORS на chrome & firefox

Firefox throw 401 несанкционированная ошибка.

отлично работает на IE 11

Существуют ли какие-либо дополнительные настройки, необходимые для этих браузеров?

ответ

0

«Ресурс делает запрос HTTP кросс-происхождения, когда он запрашивает ресурс из другого домена, чем тот, который сам первый ресурс служит» Вы можете использовать хром аддон, чтобы CORS:

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi

+0

Это не будет работать там, где используется браузер в контролируемой среде. Также это не общее решение. Исправление на стороне сервера также устранит проблему для Firefox. – chaitu301

+0

Я попытался настроить IIS, как указано ниже, но это также не сработало. http://webprojectsolution.blogspot.ca/2016/04/how-to-resolve-cors-issues-in-web-api.html – chaitu301

1

Сначала установите WebAPI Cors NuGet Пакет:

Install-Package Microsoft.AspNet.WebApi.Cors 

Затем в WebApiConfig.cs файле:

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     var cors = new EnableCorsAttribute("*", "*", "*"); 
     config.EnableCors(cors); 

     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

     //other code 
    } 
} 

Этот способ позволяет заголовок CORS глобально разрешать межсайтовые запросы из любого домена. Если вы хотите, чтобы запросы межсайтовых от только одного (или список) домена, а затем изменить параметры конструктора EnableCorsAttribute:

new EnableCorsAttribute("http://alloweddomain.com", "*", "*"); 

Вы также можете применить EnableCorsAttribute на основе контроллера или действий.

Более подробную информацию о официальной документации: http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api

+0

Спасибо Федерико, но, как вы видите, я пробовал все варианты. Я использую aps.net web api 2.2. Он отлично работает на IE, но не работает в Chrome и Firefox. Есть ли образец ссылки, который я могу установить и проверить? – chaitu301

+0

Я проверил бы ссылку, которую вы предоставили, и посмотрел, что я что-то пропустил. – chaitu301

+0

Включение CORS в web.config разрешило проблему для Firefox и Chrome.http: //enable-cors.org/server_iis7.html – chaitu301

Смежные вопросы