JQuery ajax междоменный вызов и проблема разрешения - PullRequest
6 голосов
/ 04 февраля 2010

У меня есть этот скрипт опроса, чтобы проверить, создан ли текстовый файл на сервере.Прекрасно работает локально, но не работает, когда файл находится в другом домене.Как бы я переписал это для междоменной поддержки?

$.ajax({ 
    url: 'http://blah.mydomain.com/test.txt', 
    type: "GET", 
    success: function(result) { 
        //Success!
        window.location.replace(Successful.aspx');
    }, 
    error: function(request, status, error) { 
        setTimeout("VerifyStatus(" + pollingInterval + ")");
    }
    });

РЕДАКТИРОВАТЬ: я закончил с использованием YQL для решения междоменной проблемы, и хотя это работает, YQL очень медленно, что добавляет довольно многонакладные расходы.Кто-нибудь может предложить лучшее решение для междоменных вызовов JQuery?

Ответы [ 4 ]

7 голосов
/ 04 февраля 2010

Установите для dataType значение "JSONP" при вызове $. Ajax () . Вы должны убедиться, что ответ правильно отформатирован, чтобы он работал. В Википедии есть хороший раздел на JSONP .

4 голосов
/ 04 февраля 2010

Ajax не пересекает домен. Лучше всего создать страницу php в локальном домене, который выполняет проверку, и перейти на этот вызов с помощью ajax.

1 голос
/ 04 февраля 2010

Чтобы получить междоменный AJAX через jQuery, вы можете проверить это: http://github.com/jamespadolsey/jQuery-Plugins/tree/master/cross-domain-ajax/

0 голосов
/ 12 июля 2013

Почти современные браузеры теперь поддерживают междоменную область с протоколом CORS, поэтому вы можете использовать Ajax jQuery, чтобы выполнять свою работу, ничего не редактируя в своем коде скрипта. Изменение внесено в ваш сервер, вам нужно включить сервер с помощью CORS. Это просто работа с добавлением полей заголовка в каждом ответе клиенту для поддержки протокола CORS. Смотрите пример реализации здесь.

http://zhentao -li.blogspot.com / 2013/06 / пример-для-стимулирующей CORS-поддержка-in.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...