【问题标题】:SignalR IE9 Cross Domain request don't workSignalR IE9 跨域请求不起作用
【发布时间】:2023-03-17 13:10:01
【问题描述】:

我正在使用 SignalR 制作应用程序。

集线器放置在一台运行带有 IIS 8 的 Windows Server 2012 的服务器上。 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?

谢谢。

【问题讨论】:

  • 你有没有得到这个工作?

标签: signalr signalr-hub


【解决方案1】:

我认为您正在尝试在那里进行 CORS(跨站点源共享)。它与 IE9 的工作方式不太一样,请查看this 了解详细讨论,并查看microsoft page 了解确切限制。它是使用 XDomainRequest 自定义对象而不是 XMLHttpRequest 完成的,并且...

  1. 必须使用 HTTP 或 HTTPS 协议访问目标 URL
  2. 只能使用 HTTP 方法 GET 和 POST 访问目标 URL
  3. 不得将自定义标头添加到请求中
  4. 请求的 Content-Type 标头仅支持 text/plain(不支持 soap、json 或编码数据类型!)
  5. 不会随请求发送身份验证或 cookie
  6. 只能从 Intranet 区域发出以 Intranet URL 为目标的请求
  7. 请求必须针对与托管页面相同的方案

编辑:我自己实际上从未使用过 SignalR,这个答案通常基于 CORS。根据@stricq 的评论,IE 需要启用长轮询才能与 SignalR 一起使用,如here 中所述。

【讨论】:

  • 我只是删除了这一行:jQuery.support.cors = true; 但在 IE9 中没有变化。还有什么想法吗?感谢您的宝贵时间。
  • 提到了 IE9 的附加要求。如果你也关注了all the other requirements,那只会解决它。例如不支持 JSON。
  • 我投了反对票,因为这里没有关于如何让 SignalR 在 IE9 中工作的信息。这就是问题的具体内容。
  • 使用组时,IE9 不起作用,除非您明确启用 longPolling。 widecodes.com/CNVVeWPgqq/… $.connection.hub.start({ transport: ['webSockets', 'longPolling'] });
猜你喜欢
  • 2013-08-30
  • 2019-08-05
  • 2011-10-20
  • 1970-01-01
  • 2014-04-18
  • 1970-01-01
  • 2012-08-17
  • 2014-02-09
  • 1970-01-01
相关资源
最近更新 更多