Использование ajaxSetup beforeSend для Basic Auth разрывает соединение SignalR
У меня есть WebApi, защищенный с помощью Basic Auth, который применяется ко всему API с помощью AuthorizationFilterAttribute. У меня также есть концентраторы SignalR, установленные на нескольких моих контроллерах Api.
Наряду с этим у меня есть веб-страница, которая использует мой WebApi. Веб-страница в основном написана на Backbone, поэтому для звонков на мой защищенный WebApi я добавил следующий jquery
$.ajaxSetup({
beforeSend: function (jqXHR, settings) {
jqXHR.setRequestHeader('Authorization', 'Basic ' + Token);
return true;
}
});
Это работает для связи с моими контроллерами Api, но добавление приведенного выше кода разорвало соединение с моими концентраторами SignalR, а именно:
XMLHttpRequest cannot load http://localhost:50000/signalr/negotiate?_=1366795855194.
Request header field Authorization is not allowed by Access-Control-Allow-Headers.
УдалениеjqXHR.setRequestHeader()
линия восстанавливает соединение с SignalR Hub, но прерывает вызовы Api.
Учитывая вышесказанное, я мог бы сделать что-то хакерское и установить заголовок запроса только в том случае, если запрос сделан неТ / сигналер, но это просто грязно ...
Есть ли более чистый способ обойти это?
Я просто делаю что-то глупое? Кто-нибудь еще сталкивался с этим?