SignalR IE9跨域请求不工作(SignalR IE9 Cross Domain reques

2019-10-17 10:05发布

我正在使用SignalR的应用程序。

集线器放在运行Windows Server 2012和IIS 8.一台服务器上http://mentor.cloudapp.net/mass/rexona/previa/signalr/hubs 。

客户端是在这里: http://massdeveloperstage.com/Rexona/Site/colombia/Previa/Match?matchId=6F318A29-3400-444B-95D9-7EC41A7AD2D4

该Signalr设置如下所示:

var match;
    $(document).ready(function () {
        $.connection.hub.loging = true;
        match = $.connection.match;

    match.client.addMessage = function (message) {
        var vm = {
            avatar: message.ProfileImageLocation,
            content: message.Text,
            user: message.UserScreenName,
            obj: JSON.stringify(message)
        };
         alert(vm.obj);
   }
  $.connection.hub.url = 'http://mentor.cloudapp.net/mass/rexona/previa/signalr';

    $.connection.hub.start().done(function () {
        match.server.addToGroup("97-987-PP");
    }).fail(function () {
          //alert("fail!");
    });

一切都完美的作品在Chrome中,FF,Opera和IE10中,但是当它使用IE9访问的应用程序失败。

我缺少的连接的建立的东西吗? 我是否需要在服务器上启用别的东西,以便与IE9的工作?

谢谢。

Answer 1:

我认为你正在试图做的CORS(跨站点产地共享)那里。 它不与IE9的工作完全是这样,检查此进行详细讨论,以及微软页面的确切限制。 它与XDomainRequest自定义对象,而不是XMLHttpRequest的完成,...

  1. 目标URL必须使用HTTP或HTTPS协议访问
  2. 目标URL必须仅使用HTTP方法GET和POST访问
  3. 没有自定义头可以添加到请求
  4. 只有text / plain的是支持请求的Content-Type头(没有肥皂,JSON或编码的数据类型!)
  5. 没有认证或Cookie将请求发送
  6. 针对内网URL的请求可能只能从Intranet区域做出
  7. 要求必须有针对性的方案同样托管页面

编辑:我还没有实际使用过SignalR自己,这个答案是基于CORS一般。 据@stricq评论,IE需要为此启用了SignalR工作,在解释的长轮询这里 。



文章来源: SignalR IE9 Cross Domain request don't work