2013-02-13 10 views
0

Итак, я прочитал все предыдущие вопросы по этому вопросу, но, следуя шагам, похоже, не работает для меня. Я получаю, что «Origin * не разрешен Access-Control-Allow-Origin», но это не имеет смысла для меня. Если я открою тот же запрос в Chrome на собственной вкладке и посмотрю на вкладку сети, я вижу неповрежденные заголовки CORS. Кроме того, хабы генерируются просто отлично. Я использую Web API, .NET 4.5 и rc2 SignalR. Я также попытался удалить Allow-Credentials в файле web.config, но это тоже не помогло.Проблема с CORS с SignalR - Происхождение не разрешено

Access-Control-Allow-Credentials:true 
Access-Control-Allow-Headers:x-requested-with,X-CustomAuth,Content-Type,X-Impersonate 
Access-Control-Allow-Methods:GET,OPTIONS,PUT,DELETE,HEADER 
Access-Control-Allow-Origin:* 

Я также установить jQuery.support.cors в true, несмотря на то, что уже было так же верно, я использую JQuery 1,9, а вот мое подключение к серверу и ступицей:

jQuery.support.cors = true; 
    $.connection.hub.url = 'http://myserver/api/signalr'; 
    $.connection.hub.start({ transport: 'longPolling', xdomain: true }); 

Я ve также попытался это подключиться, как с той же проблемой.

$.connection('http://myserver/api/signalr/echo').start(function() { 
     console.log('Connected'); 

     $.connection.hub.start().done(function() { 
     $log.info('Connected to hub.'); 
     });   
    }); 
+0

Чтобы сделать вещи еще более странно, я использовал образец кода от http://www.html5rocks.com/en/tutorials/cors/, чтобы загрузить и попробовать url в том же приложении, что и signalr, поэтому тот же url, но/api/admin/someoperation, и он загружается просто отлично, но когда я пытаюсь использовать url для signalr, снова возвращайте проблему с крестом. – dariusriggins

ответ

0

Значение * не может быть использована с заголовком Access-Control-Allow-Origin, если это Access-Control-Allow-Credentialstrue. Попробуйте либо одно из следующих действий:

  1. Отсоедините заголовок Access-Control-Allow-Credentials полностью.
  2. Измените значение Access-Control-Allow-Origin с * на фактическое значение заголовка Origin.

# 1 может быть проще сделать, но # 2 требуется, если вам необходимо поддерживать файлы cookie.

+0

Я попытался удалить значение Access-Control-Allow-Credentials уже, похоже, это не помогло. Однако я дам ему еще один выстрел. – dariusriggins

+0

Является ли SignalR добавлением Allow-Credentials и истоков на свой собственный? Я смотрел на него с помощью Fiddler, и заголовки иногда дублируются, но только по запросам SignalR, поэтому я удалил свои определения в файле web.config, и он может работать, я по крайней мере сейчас подключаюсь. Это проблема для меня, хотя, поскольку это означает, что у остальной части моего приложения будут проблемы с CORS. – dariusriggins

+0

Идем дальше и отмечаем это, но кажется странным, что SignalR добавляет эти заголовки и значения CORS на свой собственный, я видел проблему, чтобы отключить ее по умолчанию на GH, но я думаю, что этого еще нет. – dariusriggins

0

Согласно официальному документу, вы должны НЕ использовать jQuery.support.cors

Не устанавливайте jQuery.support.cors к истинным в вашем коде.

Ссылка на официальный документ: official doc

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