繁体   English   中英

Ajax:从其他域加载XML?

[英]Ajax: Load XML from different domain?

我已经注册(付费)进行Google网站搜索。 他们为我提供了一种Web服务的url,我可以在其中发送查询,它搜索我的站点,并返回搜索结果的XML。 好吧,我试图通过Ajax从站点页面上加载此XML,但是我不能。 我可以从域中的任何页面加载,所以我认为这是因为XML位于Google的域中。 因此,必须有一种加载它的方法,如果我对它不做任何事情,我认为他们不会给我URL。 有谁知道如何做到这一点?

谢谢!

更新

这就是网页在Google上所说的,给了我XML:

如何获取XML

您可以通过在以下URL中用搜索查询替换query + terms来获取搜索引擎的XML结果:

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

其中MY_UNIQUE_KEY =我的唯一密钥。

您无法使用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的使用条款是否可以使您做到这一点,但是如果可以,那么这是一个选择。

Google是否不提供将DNS地址转发到您的服务IP并将其折叠到您的域中的功能? 这样您可以在AJAX中进行

googleAlias.mydomain.com

Google应该支持这一点,但是我不确定。 我想他们会以与处理GMail和外部域邮件相同的方式进行操作。

消除您的跨域JavaScript问题

我在下面展开了编辑 ,另一位用户有益地指出了该方法应该可以工作(感谢Stobor)

好吧,要想让我的公司邮件进入GMail,我记得,我需要更改DNS上的MX记录以指向Google IP。 如果Google支持,您也许可以将A记录添加到您的域中,以便对foo.yourdomain.com的AJAX请求与search.google.com相同。 Google需要在A记录中识别来自您的主机名的请求,然后说:“哦,是的,是我,代表我的客户”

对于那些现在遇到这种情况的人,您可能需要AJAX搜索API: http : //code.google.com/apis/ajaxsearch/documentation/

编辑:实际上,经进一步审查,这可能与网站搜索无关...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM