【问题标题】:How to post data to external url and get return json data by jquery?如何将数据发布到外部 url 并通过 jquery 获取返回的 json 数据?
【发布时间】:2012-08-25 17:28:13
【问题描述】:

我尝试使用 jquery 将数据发布到外部网站以获取 json 数据

问题是我的响应功能不起作用,如何解决?

我的代码示例

$.getJSON("http://externalweb.com/data.php?callback=?",
    function(result) {
        // this function is not work :(
        $("#result").html("test");
    }
);

【问题讨论】:

  • 用谷歌搜索ajax cross-domain-policy
  • 您对服务器端是否有任何控制权,或者它是由第三方运行的 Web 服务等吗?服务器是否支持CORS?是否支持JSONP?它需要在哪些浏览器上运行?它需要在移动设备上运行吗?
  • 这是一个使用PhoneGap开发的移动应用程序,我按照ibm.com/developerworks/library/wa-aj-jsonp1>教程进行操作,但必须使用GET方法发送/接收数据,我希望POST方法工作。

标签: jquery json cross-domain http-post


【解决方案1】:

JSON 不支持从外部 URL 获取数据

但是你可以使用 JSONP。

这是另一位网络作者(不是我)对此的解释:

http://www.jquery4u.com/json/jsonp-examples/

【讨论】:

  • 这不再是真的了。 Opera 成为最后一个支持CORS (Cross-origin resource sharing) 的主要浏览器,尽管对于 Internet Explorer,它仅在版本 10 中受支持。(8 和 9 有一个替代方案称为XDomainRequest。)除了需要最新的浏览器版本,服务器端必须支持一个额外的 HTTP 头,通常是Access-Control-Allow-Origin: *
  • @hippietrail 假设 OP 可以控制服务器端。
  • @vzwick: JSONP 也需要服务器端报告。我确实想在我的评论中提到这一点,但空间不足。我确实在对上述问题的评论中询问了 OP。第三种选择当然是使用自定义代理,或者像YQL这样的公共代理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-25
  • 1970-01-01
  • 1970-01-01
  • 2013-05-06
相关资源
最近更新 更多