【发布时间】:2010-01-19 22:46:16
【问题描述】:
我想修改this AJAX example 中的代码以从 Google 获取结果。
我使用 Random() 方法调用将其排除在外,但是如何处理 JavaScript 中的查询字符串?我怎样才能最好地使用XMLHttpRequest 手动构建请求(这是为了测试所以必须手动完成,而不是使用框架)。
谢谢
【问题讨论】:
标签: javascript xml ajax xmlhttprequest
我想修改this AJAX example 中的代码以从 Google 获取结果。
我使用 Random() 方法调用将其排除在外,但是如何处理 JavaScript 中的查询字符串?我怎样才能最好地使用XMLHttpRequest 手动构建请求(这是为了测试所以必须手动完成,而不是使用框架)。
谢谢
【问题讨论】:
标签: javascript xml ajax xmlhttprequest
您不能将XMLHttpRequest 与http://www.google.com/... 之类的绝对网址一起使用。
浏览器会阻止cross-site scripting。你必须使用相对路径,否则大多数浏览器只会返回一个空的responseText。
作为一种可能的解决方法,您可以设置一个非常简单的reverse proxy(如果您使用的是 Apache,则使用mod_proxy)。这将允许您在 AJAX 请求中使用相对路径,而 HTTP 服务器将充当任何“远程”位置的代理。
在mod_proxy 中设置反向代理的基本配置指令是 ProxyPass。您通常会按如下方式使用它:
ProxyPass /ajax/ http://www.google.com/search
在这种情况下,浏览器会请求/ajax/?hl=en&source=hp&q=test,但实际上服务器会通过充当http://www.google.com/search?hl=en&source=hp&q=test 的代理来提供此服务。
如果您使用的是 IIS,您可能需要使用Managed Fusion URL Rewriter and Reverse Proxy 来设置反向代理。
【讨论】:
"file:///C:/path_to/file.txt" 这样的文件路径。只需在XMLHttpRequest.open() 中使用"file.txt"。