access-Control-Allow-Origin不允许signalR

时间:2012-09-25 09:49:52

标签: signalr

我收到了错误

XMLHttpRequest cannot load http://127.0.0.1:8099//negotiate?_=1348566460118. Origin http://localhost:49848 is not allowed by Access-Control-Allow-Origin

如果我运行以下代码

    <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>

    <script src="Scripts/jquery-1.8.2.js"></script>
    <script src="Scripts/jquery.signalR-0.5.3.js"></script>

</head>
<body>
    <script type="text/javascript"> 
        jQuery.support.cors = true;
        var con = $.connection("http://127.0.0.1:8099/");
        $.connection.url = "http://127.0.0.1:8099/signalr";

        con.start({ transport: 'auto', xdomain: true }, function () {
           console.log('connection started!');
       });




    </script>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

代码有些问题:

1)您缺少对/ signalr / hubs的脚本引用。

在您的情况下,它必须来自自托管服务器。所以你需要添加:

<script src="http://127.0.0.1:8099/signalr/hubs"></script>

2)你的con变量没有指向正确的对象。

而不是

var con = $.connection("http://127.0.0.1:8099/");

应该是

jQuery.support.cors = true;

var con = $.connection.hub;
con.url = "http://127.0.0.1:8099/signalr";

con.start(function() {
    console.log('connection started!');
});
相关问题