2015-06-06 4 views
-1

Является ли проблема CORS на WebAPI глупой или это я? Не полагаются ли веб-сервисы для использования третьими лицами? Может кто-нибудь, пожалуйста, объясните мне, почему у меня проблема с вызовом WebAPI, если она была в другом домене, ее веб-сервисы, ее предполагается быть в другом домене!AngularJS и WebAPI CORS

Я добавил библиотеку CORS в свой WebAPI и добавил разрешение внутри моей конфигурации, но все еще не работает.

И кто гениальная идея состояла в том, чтобы сделать два звонка, чтобы получить информацию с CORS. Теперь все мои просьбы будут удвоены!

Как исправить проблему CORS между AngularJS и Webapi? Было бы очень приятно, если бы кто-нибудь мог объяснить мне теоретически, почему я не могу позвонить на веб-сервис без этого CORS thingyy. Разве веб-служба не должна потребляться всеми?

+0

Пожалуйста, рассмотреть вопрос о разъяснении, что вы хотите помочь с и удалить случайные разглагольствования с поста. Нет проблем с CORS на WebAPI :) –

+0

Как исправить проблему CORS между AngularJS и WebAPI? Я был бы признателен, если бы вы теоретически объяснили, почему мне нужен CORS в первую очередь. Почему я не могу позвонить в веб-службу без каких-либо ОПЦИЙ, а что нет ... – rtp

+0

CORS не имеет ничего общего с AngularJS и WebAPI. Ваш браузер видит два разных URL-адреса, возможно, потому что они могут быть на разных портах? Это браузер, скорее всего, виновник здесь. Получите два приложения в одном и том же порту или домене (например, services.yourdomain.com и app.yourdomain.com), и у вас не будет проблем с CORS. – NewZeroRiot

ответ

0

Проблема CORS не будет происходить в части WebAPI. он будет всегда в стороне клиента, когда WebAPI и клиент будут в двух разных портах.

Если это ASP.NET WebAPI, вам необходимо установить пакет Microsoft.Owin.Cors и инициализировать CORS при запуске веб-сервера.

В WebiApiConfig.cs положить в чем-то вроде:

var cors = new EnabledCorsAttribute("", "", "DataServiceVersion,MaxDataServiceVersion"); 
config.EnableCors(cors); 

Web.Config

<httpProtocol> 
      <customHeaders> 
       <add name="Access-Control-Allow-Origin" value="http://localhost" /> 
       <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept, Cache-Control" /> 
       <add name="Access-Control-Allow-Credentials" value="true" /> 
       <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /> 
      </customHeaders> 
     </httpProtocol> 
+0

WebAPI и клиент развертываются в разных поддоменах. Я установил Web API CORS 2.2 и добавил config.EnableCors(). но это не сработало. Разве это иначе, чем OWIN CORS? – rtp

+0

добавьте отредактированный код в web.config и попробуйте один раз – ReeganLourduraj

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