Пытаюсь вызвать signalR из другого домена и продолжаю получать эту ошибку:
XMLHttpRequest не может загрузить localhost:62150/signalr/negotiate?_=1362242757692. Исходный локальный хост: 4982 не разрешен Access-Control-Allow-Origin.
Это код, который я пытаюсь запустить:
$(function () {
jQuery.support.cors = true;
$.connection.hub.url = 'https://localhost:62150/signalr';
$.connection.hub.start()
.done(function () { alert("Now connected!"); })
.fail(function () { alert("Could not Connect!"); });
});
jquery и jquery.signalr.js загружены, localhost: 62150/signalr/hubs отвечает JS, localhost: 62150/signalr/hubs/negotiate?_=1362243021215 возвращает JSON, если я запускаю это в браузере, так что это не отсутствующий скрипт или проблема с неверным путем.
Что я пробовал:
- https://coding4life.wordpress.com/2012/03/30/making-cross-domain-calls-in-signalr/ (настройка jQuery.support.cors и $.connection.hub.url)
- Добавление пользовательского заголовка в web.config со значением «Access-Control-Allow-Origin» = «*» (это работает только в IIS?)
- Создание модуля http, который будет возвращать этот заголовок при каждом запросе. Также пытался вернуть фактическое доменное имя вместо *.
И комбинации всего вышеперечисленного.
Кто-нибудь знает, что еще я могу попробовать?
Обслуживающее приложение представляет собой комбинацию MVC и WebAPI (не думаю, что это имеет какое-либо значение). Если я пробую этот код из того же домена - он работает.