【问题标题】:consuming REST API on client side using JQuery for phonegap Application使用 JQuery 在客户端使用 REST API 用于 phonegap 应用程序
【发布时间】:2012-09-24 01:34:58
【问题描述】:

我的代码是这样的

$.ajax({
    cache: false,
    url:  <Web Service URL>,
    data: "{}",
    type: 'GET',
    crossDomain: true,
    dataType: 'json',
    success: function() { alert("Success"); },
    error: function() { alert('Failed!'); },
});

我正在尝试使用 JQuery 从客户端访问 REST API,但它给出了类似的错误 XMLHttpRequest cannot load &lt;Web Service URL&gt;. Origin null is not allowed by Access-Control-Allow-Origin.

那么有人可以帮我解决这个错误吗..?

【问题讨论】:

  • 嗨,Pushpesh,我也尝试了 JSONP,但它给出了同样的错误
  • 你能给我一个有效的网址,以便我试一试。您上面提供的网址无效,因此我无法验证。
  • 嗨,Pushpesh,它现在对我有用..

标签: javascript ajax jquery


【解决方案1】:

在谷歌之后,我才知道,用户必须在 phonegap/hybrid 应用程序的 config.xml 中添加“”。

【讨论】:

    【解决方案2】:

    Ajax 请求需要发送到为网页提供服务的服务器。

    您可以做的是在您的网站上设置一个代理,将来自浏览器的请求转发到您希望拨打电话的网站。

    http://your.site.here/proxy/bentley/LearnService/Learnservice.svc/REST/...

    因此,如果您碰巧使用 apache,您可以通过在 httpd.conf 中添加如下内容来配置反向代理:

    ProxyPassReverse /proxy/bentley http://khara37793punl.bentley.com/
    

    【讨论】:

      【解决方案3】:

      看看这个问题的其他 SO 问题: Access Control Allow Origin not allowed by

      还有著名的: Access-Control-Allow-Origin Multiple Origin Domains?

      所有这些答案都已解释,您必须允许为您的服务器编写脚本,或者您的脚本必须在同一台服务器上。

      【讨论】:

        猜你喜欢
        • 2021-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-09
        相关资源
        最近更新 更多