jQuery Cross Site Fetch - PullRequest
       5

jQuery Cross Site Fetch

1 голос
/ 27 июня 2009

Я чувствую, что это легко, но мне чего-то не хватает ...

Используя jQuery, я пытаюсь извлечь удаленную страницу (на другом сервере), захватить содержимое HTML и внедрить этот контент в скрытый DIV. Однако использование $ .ajax или $ .get приводит к ошибке межсайтового скриптинга в FireFox.

Есть предложения? Код:

$.ajax({
    type: 'GET',
    url: "http://www.remote-url.com",
    dataType: 'html',
    success: function(data) {
        $('#put_here').empty().append(data);
    }
});

Спасибо!

Чад

Ответы [ 4 ]

4 голосов
/ 27 июня 2009

Вы не можете сделать это - Одинаковая политика происхождения предотвращает это по соображениям безопасности (как вы обнаружили).

Вам необходимо запустить прокси-скрипт на вашем собственном сервере, который ваш JavaScript использует для извлечения контента с удаленного сервера от его имени.

2 голосов
/ 27 июня 2009

В качестве альтернативы вы можете использовать уже существующие API-интерфейсы, такие как YQL или Pipes, для доступа к данным, к которым вы стремитесь ... и затем возвращать результаты, используя JSONP (междоменная операция).

0 голосов
/ 27 июня 2009

Если вы хотите перейти на другой сайт, вы не можете добавить всю страницу. Есть способ получить данные с междоменных сайтов, используя JSONP. Что вы делаете, это заставляете js вызывать возвращаемые вами данные как функцию, которая будет оценивать данные json. Но это не сработает, если вы пытаетесь получить целую страницу.

0 голосов
/ 27 июня 2009

AJAX запрещает междоменную выборку. Вы должны получить свой сервер с любого сервера, с которого хотите получать информацию.

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