Кросс-сервер домена извлекает данные jQuery..Ajax? - PullRequest
0 голосов
/ 07 февраля 2012

Можно ли получить исходные данные из другого домена (в данный момент не принадлежащего) с помощью метода jQuery Ajax?Если не любой другой метод?

Попытка выяснить, могу ли я вытащить указанный тег a с учетом его контейнера (:contains).В частности, в приведенном ниже примере я хочу просто указать, сколько существует 4-звездочных рейтингов:

$(document).ready(function(){
    $.ajax({
        url: "http://www.google.com/products/seller?hl=en&q=burkett+restaurant+equipment&zmi=basequipment.com&cmi=12986189937115136&sa=X",
        context: document.body,
        dataType: 'html',

        success: function(data){
            var fourStars = $(data).find('a[href*="rate=4"]').text();
            alert(fourStars);       
        }
    });
});

Ответы [ 4 ]

0 голосов
/ 07 февраля 2012

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

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

Если вы на самом деле имели в виду Google, когда говорили «другой домен (в данный момент не принадлежит)»;), у них есть JSONP API - см. http://code.google.com/apis/gdata/docs/json.html - json-in-script.

0 голосов
/ 07 февраля 2012

Обычно я бы сказал, загрузите страницу в iframe и проанализируйте ее, но продукты Google выдают ошибку: Refused to display document because display forbidden by X-Frame-Options. при попытке загрузить ее в iframe.

Вы можете использовать GoogleAPI контента: http://code.google.com/apis/gdata/docs/2.0/reference.html#Queries

0 голосов
/ 07 февраля 2012

Вы не можете совершить прямой ajax-вызов в Google из-за той же политики происхождения .Однако вы МОЖЕТЕ создать php-файл (или другой файл сценариев) и использовать его в качестве прокси-сервера, а затем сделать ajax-вызов вашего php-файла.

Например, создайте файл «ajax.php» в том же каталоге, содержащий это:

<?php
$page = file_get_contents ("http://www.google.com/products/seller?hl=en&q=burkett+restaurant+equipment&zmi=basequipment.com&cmi=12986189937115136&sa=X");
print $page;
?>

Затем из вашего кода jQuery измените URL на: url: "ajax.php ",

0 голосов
/ 07 февраля 2012

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

Вы можете взглянуть на междоменный доступ с помощью YQL и jQuery.

http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-cross-domain-ajax-request-with-yql-and-jquery/

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