2014-12-24 1 views
0

Я использую VS2013 с IIS8. Мое приложение обращается к серверу с другим IP-адресом для входа в систему. Я успел сделать доступ из другого окна Windows, на котором работает Webstorm. Теперь мое приложение работает в VS2013, и я получаю эту ошибку:IIS Expess 8 не отправляет Access-Control-Allow-Origin с VS2013 Dev

XMLHttpRequest не может загрузить http://example.com/Token. В запрошенном ресурсе нет заголовка «Access-Control-Allow-Origin». Origin 'http://localhost:2757', следовательно, не допускается. Ответ был HTTP код статуса 500.

Я попытался добавить следующее к моей веб-конфигурации, а также в файл IIS Express Config:

web.config

<system.webServer> 
    <httpProtocol> 
     <customHeaders> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
     <add name="Access-Control-Allow-Headers" value="Content-Type" /> 
     </customHeaders> 
    </httpProtocol> 
    </system.webServer> 

ApplicationHost.config

<httpProtocol> 
     <customHeaders> 
      <clear /> 
      <add name="X-Powered-By" value="ASP.NET" /> 
      <add name="Access-Control-Allow-Origin" value="*" /> 
      <add name="Access-Control-Allow-Headers" value="Content-Type" /> 
     </customHeaders> 
     <redirectHeaders> 
      <clear /> 
     </redirectHeaders> 
    </httpProtocol> 

Все еще я получаю то же сообщение.

Есть ли у кого-нибудь идеи о том, как я могу это исправить. Также как я могу определить, установлен ли Access-Control-Allow_Headers, глядя на Fiddler?

+0

Ваш порт отличается так ...Обратитесь к этому сообщению, которое касается аналогичной проблемы. http://stackoverflow.com/questions/9816591/origin-http-localhost1716-is-not-allowed-by-access-control-allow-origin –

ответ

0

У меня есть работающий веб-проект api, который может принимать все типы заголовков, запросов, cors также включен и т. Д. И может быть вызван из любого места. Хотя я не развернул свой проект на сервере IIS, но пока что он успешно работает для меня на localhost.

Попробуйте это. Может быть, это решит вашу проблему.

Я предполагаю, что проект, который вы создали на VS 2013, представляет собой веб-проект api.

Выполните следующие действия: -

1) Открыть NuGet менеджера пакетов консоли в вашем Web API проекта.

2) типа Microsoft.AspNet.WebApi.Cors Install-Package и установить его

3) После успешного типа Update-Package Microsoft.AspNet.WebApi и установить его.

4) проверьте ваш файл web.config для следующих записей, если они есть, а затем удалите/комментарии .

добавить имя = значение "Access-Control-Allow-Origin" = "*"

добавить имя = "Access-Control-Allow-Headers" значение = "*"

добавить имя =» Access-Control-Allow-Methods "value =" GET, POST, PUT, DELETE, OPTIONS "

5) Теперь перейдите в файл контроллера и импортируйте пространство имен. используя System.Web.Http.Cors;

6) Теперь на типе уровня контроллера [EnableCors (происхождение: «», заголовки: «», методы: «*»)], чтобы позволить всем типам происхождения, заголовков и методов, которые будут приняты контроллером ,

Пока это работает для меня.