2

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

谢谢!

更新

这就是谷歌页面上给我 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 = 我的唯一键。

4

3 回答 3

3

您不能使用 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 访问它。我不确定谷歌的使用条款是否会让你这样做,但如果他们这样做,那么这是一个选择。

于 2009-05-21T21:17:14.260 回答
1

谷歌不提供将 DNS 地址转发到您服务的 IP 并将其折叠到您的域中的功能吗?这样你就可以在 AJAX 中做

googleAlias.mydomain.com

谷歌应该支持这一点,但我不确定。我想他们会以与 GMail 和外部域邮件相同的方式。

删除您的跨域 javascript 问题

编辑我在下面展开,另一个用户很有帮助地指出这应该有效(感谢 Stobor)

好吧,如果我记得的话,为了让我的公司邮件进入 GMail,我需要将我的 DNS 上的 MX 记录更改为指向一个谷歌 IP。如果 google 支持,您可以将 A 记录添加到您的域,因此对 foo.yourdomain.com 的 AJAX 请求与 search.google.com 或其他任何内容相同。Google 需要识别 A 记录中来自您的主机名的请求,并说“哦,是的,那是我,代表我的客户”

于 2009-05-21T20:51:51.597 回答
0

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

编辑:实际上,经过进一步审查,这可能不会与网站搜索挂钩......

于 2010-05-11T02:22:11.543 回答