2009-10-23 169 views
3

我需要请求网页客户端并将其作为字符串传递给服务器。我试过jQuery:类似javascript浏览器的GET请求

$.get(
    "http://example.ru/", 
    {name:"Joe", age:"42"}, 
    function(data){ 
     $.get(
      "script.php", 
      {data:data, query:query}, 
     ) 
    }); 
}); 

但没有成功。我怀疑是因为jQuery添加了自定义头文件而失败。

你能给我提供一些技巧来重写请求头文件或任何js库,这些请求就像浏览器一样吗?

+0

您应该使用Firebug(http://getfirebug.com/)来查看表面下面发生了什么。 – 2009-10-23 13:58:23

+0

当然我使用萤火虫。我注意到唯一不同的是以下头文件: Origin \t http:// localhost 访问控制请求头\t x请求与 – dir01 2009-10-23 14:17:51

+0

只是注意到,请求方法是OPTIONS而不是GET。我勒个去。任何人都可以解释我? – dir01 2009-10-23 14:21:50

回答

3

你被Same Origin Policy抓出来:

同源策略阻止 文档或脚本从一个起源 加载从获得或从另一个 原点设置文档的 性能。

你可以做的是在你的域中使用一个简单的代理来获取你感兴趣的页面(当然有权限),从而允许你通过ajax请求在你的页面上显示它。我的意思是类似于以下内容:

$.get("yourdomain/proxy.php?name=Joe&age=42" 
    function(data){ 
     $.get(
      "script.php", 
      {data:data, query:query}, 
     ) 
    }); 
}); 
+0

o_O所以没有办法通过在主机B上执行的JavaScript从主机A获取数据?但在这种情况下,google web search api如何工作? – dir01 2009-10-23 14:15:31

+0

您可以从来自不同域的