我使用signalr在我的asp.net mvc4的WebAPI項目(2.0.0版本),自定義頁眉和Signalr:Asp.Net MVC4網絡API
這裏允許跨源資源共享,我用下面的代碼在webconfig文件
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<remove name="X-Powered-By" />
</customHeaders>
下面是用於從服務器接收數據的客戶端側signalr代碼:我使用下面的代碼,以實現與signalr CORS
$(function() {
var nodePublishingHub = $.connection.nodePublishingHub;
nodePublishingHub.client.NodePublished = onNewMessage;
$.connection.hub.error(function (error) {
$('#messages').append('<li>' + error + '</li>');
});
$.connection.hub.url = "http://localhost:5441/signalr";
$.connection.hub.start({ transport: 'longPolling' })
});
,
public void Configuration(IAppBuilder app)
{
app.Map("/signalr", map =>
{
map.UseCors(CorsOptions.AllowAll);
var hubConfiguration = new HubConfiguration
{
EnableJSONP = true
};
map.RunSignalR(hubConfiguration);
});
}
但是發生錯誤,
XMLHttpRequest cannot load http://localhost:5441/signalr/negotiate?connectionData=%5B%7B%22name%22%3A%…name%22%3A%22nodepublishinghub%22%7D%5D&clientProtocol=1.3&_=1386654835296. The 'Access-Control-Allow-Origin' header contains the invalid value 'null, *'. Origin 'null' is therefore not allowed access.
我怎樣才能解決這個問題呢?請幫忙。
我嘗試以下,
我加入這個代碼golbal.asax但它只會讓enaled每種方法的CRO,所以我不能從服務器來處理得到的圖像。
HttpContext.Current.Response.Headers.Add("Access-Control-Allow-Origin", "*");
如果您不想更改jquery.signalr 2.0.0.js, 那麼只需使用hub.start({withCredential:false}) – AlfeG