Ajax: загрузить XML из другого домена? - PullRequest
2 голосов
/ 22 мая 2009

Я зарегистрировался (заплатил) за поиск по сайту Google. У них есть URL-адрес своего рода веб-службы, где я могу отправить ему запрос, он выполняет поиск на моем сайте и возвращает XML-результаты результатов поиска. Ну, я пытаюсь загрузить этот XML через Ajax со страницы на моем сайте, но я не могу. Я могу загрузить любую из моих страниц в своем домене, поэтому я предполагаю, что это происходит из-за того, что XML находится в домене Google. Так что должен быть способ загрузить его, хотя, я не думаю, что они дали бы мне URL, если бы я ничего не мог с этим поделать, смеется. Кто-нибудь знает, как это сделать?

Спасибо!

UPDATE

это то, что говорит Google на странице, которая дала мне XML:

Как получить XML

Вы можете получить результаты XML для вашего поисковая система, заменив запрос + условия с вашим поисковым запросом в этом URL:

http://www.google.com/cse?cx=MY_UNIQUE_KEY&client=google-csbe&output=xml_no_dtd&q=query+terms

Где MY_UNIQUE_KEY = мой уникальный ключ.

Ответы [ 3 ]

3 голосов
/ 22 мая 2009

Вы не можете загружать внешние файлы с помощью AJAX. Однако вы можете настроить файл на своем собственном сервере, который сделает контент доступным на вашем сервере. Например, в PHP вы можете написать файл googlexml.php:

<?php
@readfile("http://www.google.com/cse?cx=MY_UNIQUE_KEY&client=googlecsbe&output=xml_no_dtd&q=query+terms");
?>

И тогда вы можете получить к нему доступ с помощью AJAX. Я не уверен, что условия использования Google позволят вам сделать это, но если они это сделают, то это вариант.

1 голос
/ 22 мая 2009

Разве Google не предлагает возможность пересылать DNS-адрес на IP-адрес вашего сервиса, складывая его в свой домен? Таким образом, вы можете сделать в AJAX

googleAlias.mydomain.com

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

Удаляет проблемы междоменного JavaScript

edit Я раскрыл ниже, и другой пользователь услужливо указал, что это должно работать (спасибо Stobor)

Что ж, чтобы отправить почту моей компании в GMail, если я вспомню, мне нужно было изменить запись MX в DNS, чтобы она указала на IP-адрес Google. Вы можете, если Google поддерживает это, добавить запись A в свой домен, чтобы запрос AJAX к foo.yourdomain.com был таким же, как search.google.com или чем-то еще. Google должен распознать запросы от вашего имени хоста в записи A и сказать «О, да, это я, от имени моего клиента»

0 голосов
/ 11 мая 2010

Для тех, кто сталкивается с этим сейчас, AJAX Search API может быть тем, что вы хотите: http://code.google.com/apis/ajaxsearch/documentation/

РЕДАКТИРОВАТЬ: На самом деле, при дальнейшем рассмотрении, которые могут не зацепиться с поиском по сайту ...

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