Междоменный SignalR не работает в браузерах, отличных от IE10

Я пишу веб-приложение, используя междоменную связь SignalR. Я использую последнюю версию SignalR, 1.0.1. Ниже приведен код события готовности документа jQuery:

var connection = $.hubConnection(url);
  var proxy = connection.createHubProxy(hubName);

  connection.start().done(function () {
    proxy.invoke('serverMethod');
  });

Я пробовал запускать приложение в Opera, Firefox, Chrome и IE 10. Моя ОС — Windows 7. Оно хорошо работает в IE 10 и не работает в других браузерах. Я изменил режим IE с помощью инструментов разработчика на IE 9, и он перестал работать. Один и тот же код работает во всех браузерах, если я использую SignalR версии 0.5.3.

В инструментах разработчика браузера я обнаружил следующий код состояния HTTP в ответ на запрос согласования: «HTTP/1.1 403 Forbidden».

Я что-то пропустил здесь? По какой причине он ломается в браузерах, отличных от IE 10?


person S. Ravi Kiran    schedule 09.03.2013    source источник


Ответы (1)


Убедитесь, что в вызове MapHubs включен междоменный доступ.

RouteTable.Routes.MapHubs(new HubConfiguration() { EnableCrossDomain = true });

При локальном тестировании между доменами в IE10 есть интересная функция, которая рассматривает любой порт локального хоста как не являющийся междоменным.

person N. Taylor Mullen    schedule 09.03.2013
comment
Новый метод для этого: asp.net/signalr/overview/guide-to-the-api/ - person dudeNumber4; 09.10.2015