Как использовать jQuery.get () с полным URL - PullRequest
1 голос
/ 29 марта 2011

Я новичок в jQuery (и AJAX в этом отношении), и я пытаюсь понять, как работают методы get / post / ajax.Поэтому я создал простую .html-страницу, содержащую следующую инструкцию jQuery:

function myImport() {
    var url = '../rawdata.txt';
    $.get(url, function (data) {    
        $('#importedHtml').text(data);
    });
}

Вы заметите, что в качестве URL-адреса указан локальный файл с именем rawdata.txt.Этот файл содержит именно эти данные:

0,Sun 18:32:56,0,
1,999 uS,1,
2,4561 F,0,
3,3.4,1,
4,3.3,1,
5,0.0%,0,
15,0 G,1,
16,0 G,1,
19,18.55hrs,3,
27,Setpoints,3,
28,ON:  50.16hrs,0,
29,Interlocked S,3,
30,Interlocked S,3,
31,Interlocked S,3,

Как видно, при запуске функции myImport () метод .get () захватывает локальный файл rawdata.txt, а затем отображает содержимоефайл в HTML-элемент.Все это работает нормально.

Однако я хотел бы использовать метод .get () для получения данных с живого веб-сервера (не локального файла), но когда я пытаюсь это сделать, я получаюнет ответа от сервера.Я точно знаю, что веб-сервер работает и правильно отвечает на запросы (через обычный браузер).Поэтому на данный момент я не уверен, что я использую метод .get () неправильно или что-то еще.

Например:

Обновленный оператор jQuery выглядит следующим образом:

function myImport() {
    var url = 'http://173.196.155.45/taco.cgi?F0=AV&F1=4564';
    $.get(url, function (data) {
        $('#importedHtml').text(data);
    });
}

Вы заметите, что единственное отличие - это значение переменной 'url'.URL-адрес теперь указывает на работающий веб-сервер.На запрос url ответят данные, которые похожи на данные, существующие в файле rawdata.txt.

Вы заметите, что если вы посетите реальный URL , который вы получитеответ в виде простого текста (без синтаксиса HTML, заголовков и т. д. - только строка данных).Однако, если вы запустите пример jQuery, в переменной «data» метода .get () нет содержимого.

Я неправильно использую метод .get () в сценарии, который содержитживой URL?Более конкретно, как я могу использовать jQuery для получения данных, которые живут по этому живому URL ?

1 Ответ

2 голосов
/ 29 марта 2011

Если ваш HTML-файл является локальным, но файл данных является удаленным, вы попадаете в тупик от политик безопасности "перекрестного происхождения".

Для этого требуется, чтобы запросы AJAX обслуживались из того же домена, что и исходный файл HTML.

Чтобы обойти, либо:

  1. Используйте JSONP, который подрывает политику с помощью тегов <script> или
  2. Посмотрите на предоставление заголовка Access-Control-Allow-Origin из вашего скрипта CGI.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...