当前位置: 首页 > 面试题库 >

Ajax:从其他域加载XML?

秦学林
2023-03-14
问题内容

我已经注册(付费)进行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+条款

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



 类似资料:
  • 我知道已经有一些关于相对路径的问题,但是我总是无法让JavaFX FXML加载器从包本身以外的包加载资源。 加载类位于包gui.controllers中,fxml文件位于包中。我现在应该写什么: 提前谢谢

  • 我需要从另一个GCP区域访问运行在GKE Nginx入口服务上的内部应用程序,该服务运行在内部负载均衡器上。 我完全知道,直接使用谷歌网络是不可能的,这是一个巨大的限制(GCP功能请求)。 通过AWS的VPN隧道可以很好地访问内部负载平衡器,但我不确定在同一网络下的GCP区域之间创建这样的隧道是一个好主意。 欢迎变通方法!

  • 问题内容: 我正在尝试使用AJAX加载跨域HTML页面,但是除非dataType为“jsonp”,否则无法获得响应。但是,使用jsonp时,浏览器期望使用脚本mime类型,但接收到“ text / html”。 我的请求代码是: 有什么方法可以避免对请求使用jsonp吗?我已经尝试使用crossDomain参数,但是没有用。 如果没有,有什么办法可以接收jsonp中的html内容?当前,控制台在j

  • 问题内容: 在jquery Ajax调用中,我当前正在处理statusCode分别为200和304。但是我还定义了“错误”,以捕获可能返回的任何错误。 如果有相关的验证消息,我们将返回状态码400-错误的请求。 然后,在属于我定义的statusCode“ 400”函数之前,属于“错误”函数。这意味着有两个动作发生。 理想情况下,我不想定义“错误”和“成功”,而仅定义“ statusCode”,但是

  • 我在JQuery mobile和Eclipse中的PhoneGap中编写了一个android移动应用程序。在这个应用程序中,我调用jquery ajax来加载来自其他域的数据列表。 我的jQuery ajax调用代码是: 变量“WEBSERVICE\u URL”具有其他域php服务URL。在“pageview”事件上执行上述代码时,我遇到以下错误 有任何解决方案可以从JQuery Mobile P

  • 我正在尝试将一个字符串从topicRNG加载到changeXML。我以前在类之间加载过变量,但现在无法运行 首先,我有我的代码,我试图加载它。包装试验; 然后是我试图加载的代码, 当我从GenreDefiner加载int时,我把它设置成这样, 我尝试过“将公共静态字符串放入topicFinal”,但它给了我一个错误,当我将它放在“公共静态void main(String args[]){}”之外时