Междоменные ограничения в атмосфере jquery

я хотел бы подключиться к серверу кометы с помощью плагина атмосферы jquery. Проблема заключается в том, что сервер находится в другом домене и «Начиная с версии 0.7.2, Atmosphere JQuery PubSub не поддерживает междоменные запросы. Мы не можем использовать этот метод для JSONP». Есть ли способы обойти это? Я открыт для любого решения!

Вот код javascript, используемый на данной примерной странице в удаленном домене:

    $(document).ready(function() {

    function callback(response) {
        // Websocket events.
            $.atmosphere.log('info', ["response.state: " + response.state]);
        $.atmosphere.log('info', ["response.transport: " + response.transport]);

        detectedTransport = response.transport;
        $('ul').append($('<li></li>').text("Resp Status : "+response.status+" Transport : "+response.transport));
        if (response.transport != 'polling' && response.state != 'connected' && response.state != 'closed') {
        $.atmosphere.log('info', ["response.responseBody: " + response.responseBody]);
        if (response.status == 200) {
            var data = response.responseBody;
            if (data.length > 0) {
               dataArray = eval("("+data+")");

               $.each(dataArray, function(index, value){
                 var output = '';
                 var dipData = value;
                 for (property in dipData) {
                    output += property + ': ' + dipData[property]+'; ';
                 }

                 $('ul').append($('<li></li>').text(dipData.__publicationName+":"+output));
               });
            }
        }
        else{

        }
        }
    }

       // As of v 0.7.2, Atmosphere JQuery PubSub does not support
       // cross domain requests. We cannot use this method for JSONP
       $.atmosphere.subscribe(document.location.toString() + 'webcast', callback);
    });

Спасибо


person Alex    schedule 18.09.2011    source источник


Ответы (2)


Самым простым вариантом может быть установка прокси-сервера Node.js в вашем домене для передачи ваших запросов к внешнему домену.

person Skylar Anderson    schedule 18.09.2011
comment
Спасибо, я никогда раньше не касался node.js. Не могли бы вы привести пример того, как это будет реализовано? Спасибо! - person Alex; 18.09.2011
comment
+1 для node.js. Nginx также довольно прост в качестве простого прокси-сервера. - person beatgammit; 18.09.2011
comment
Я использую nginx на сервере, возможно, тогда это был бы лучший подход; Не могли бы вы привести пример того, как это будет работать? Спасибо - person Alex; 19.09.2011

Самое простое решение: использование CORS для браузеров без IE и XDR или междоменного запроса. Вам просто нужно изменить заголовок HTTP и использовать Allow_Access.

person Ali    schedule 25.04.2012