signalR не разрешен Access-Control-Allow-Origin

я получаю сообщение об ошибке

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>

person Josh    schedule 25.09.2012    source источник


Ответы (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!');
});
person WilliamBZA    schedule 26.09.2012