SignalR в разных доменах

Я пытаюсь заставить базовый образец работать в разных доменах, но я просто не могу заставить его работать. По словам кого-то здесь https://github.com/SignalR/SignalR/issues/6 он заставил его работать, добавив заголовок Access-Control-Allow-Origin.

По сути, я добавил концентратор в приложение mvc 3, добавил вышеуказанный заголовок в файл web.config и создал страницу для отправки сообщения. Эта установка работает нормально. Затем я создал другое веб-приложение, используя тот же клиентский javascript на странице, но задав URL-адрес другого сервера, используя:

$.connection.hub.url = 'http://www.myserver.com/signalr';

Как только я использую удаленный URL-адрес, он перестает работать.

Как заставить SignalR работать в разных доменах?

Обновление: добавлена ​​некоторая информация, описанный выше подход работает для Chrome и Firefox, но IE9 не нравится...


person Rob Tillie    schedule 17.03.2012    source источник
comment
В каком браузере вы тестируете? Не все браузеры поддерживают заголовок Access-Control-Allow-Origin.   -  person Darin Dimitrov    schedule 18.03.2012
comment
Я использую IE9 и Chrome   -  person Rob Tillie    schedule 18.03.2012


Ответы (1)


Я заработал, используя простой тестовый проект и Internet Explorer 9, но это было непросто, и сначала я застрял на тех же проблемах, которые вы описали. Я думаю, что вы почти у цели, и вам не хватает только следующей строки в вашем JavaScript:

jQuery.support.cors = true;

который сообщает jQuery выполнять междоменные вызовы. Кажется простым, но было действительно трудно найти ;-)

Я объяснил все свои шаги в блоге. post, так как я пока не нашел никакой существующей информации по этой теме.

Подскажите, есть ли еще проблемы. У меня есть рабочий тестовый проект, работающий в Internet Explorer 9, который я могу вам отправить.

person aKzenT    schedule 30.03.2012
comment
Спасибо, это сработало! Он генерирует исключение отказа в доступе в фоновом режиме в кадре навсегда (точнее, var $ = window.parent.jQuery), и пользователь получает всплывающее сообщение, разрешающее cors, но он отправляет и получает сообщения! - person Rob Tillie; 30.03.2012
comment
Странно, я не получил никакого всплывающего сообщения... Это в IE или в другом браузере? Рад, что работает :-) - person aKzenT; 30.03.2012
comment
Это действительно в IE9. Я надеюсь, что они скоро получат официальную междоменную поддержку в SignalR :) - person Rob Tillie; 31.03.2012
comment
Этот пост в блоге на месте, спас меня от МНОГО хлопот! Спасибо. - person ; 14.01.2015