【问题标题】:javascript browser-like GET request类似 javascript 浏览器的 GET 请求
【发布时间】:2009-10-23 13:55:09
【问题描述】:

我需要在客户端请求网页,然后将其作为字符串传递给服务器。我试过 jQuery:

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

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

您能否建议我一些技术来覆盖请求标头或任何像浏览器一样发出请求的 js 库?

【问题讨论】:

  • 您应该使用 Firebug (getfirebug.com) 来查看表面之下发生了什么。
  • 我当然用萤火虫。我注意到唯一不同的是以下标头:Origin localhost Access-Control-Request-Headers x-requested-with
  • 刚刚注意到请求方法是 OPTIONS 而不是 GET。我勒个去。谁能解释一下?

标签: javascript jquery get header


【解决方案1】:

你被Same Origin Policy抓到了:

同源策略防止 从一个加载的文档或脚本 源于获取或设置 另一个文档的属性 产地。

您可以做的是在您的域上使用一个简单的代理来获取您感兴趣的页面(当然是经过许可),从而允许您通过 ajax 请求将其显示在您的页面上。我的意思是这样的:

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

【讨论】:

  • o_O 那么没有办法通过在主机B上执行的javascript从主机A获取数据吗?但在这种情况下,谷歌网络搜索 api 之类的东西是如何工作的呢?
  • 您可以从不同域的
猜你喜欢
  • 2013-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
  • 2020-07-29
相关资源
最近更新 更多