我想修改this AJAX example中的代码以获取Google的结果。
我使用Random()方法调用将其取出,但是如何使用JavaScript中的查询字符串?我怎样才能最好地使用XMLHttpRequest
来手动构建请求(这是为了测试所以必须手动完成,而不是使用框架)。
由于
答案 0 :(得分:3)
您不能将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来设置反向代理。