【问题标题】:$.ajax POST returning "status":403,"statusText":"Forbidden" cordova android$.ajax POST 返回“status”:403,“statusText”:“Forbidden”cordova android
【发布时间】:2015-02-05 07:30:02
【问题描述】:

我正在使用 jquery.mobile-1.4.3.js 和 cordova.3.5.0 开发 Android phonegap 应用程序。

我正在为 Web 服务调用 $ajax。下面是一个代码sn-p。

 $.ajax({
        type: 'POST',
        data: LoginData,
        crossDomain:true,
        dataType : 'json',
        timeout: 50000,
        url: 'https://dsp-wasatchtechies.cloud.dreamfactory.com/rest/user/session?app_name=XXXXX',
        success: function(data) {


            console.log(' SESSION' + JSON.stringify(data));

        },
        error: function(data) {

            //ActivityIndicator.hide();
            console.log('ERROR : SESSION' + JSON.stringify(data));
            //ShowAlertMessage('There was an error while SESSION');
        }
    });

它工作得很好,但现在它的响应:

  [INFO:CONSOLE(155)] "ERROR SESSION{"readyState":4,"responseText":"","status":403,"statusText":"Forbidden"}", source: file:///android_asset/www/js/index.js (155)

这段代码有什么问题?为什么它不工作? 任何帮助,建议将不胜感激

提前谢谢你。

【问题讨论】:

  • 错误:会话{"readyState":0,"responseText":"","status":0,"statusText":"error"}
  • @MohammedImranN 你想解释什么?
  • 我没有收到任何权限错误。可能您应该将 config.xml 中的访问源配置为
  • 我已经有
  • 可能您的设备不信任 ssl 证书

标签: android ajax cordova jquery-mobile phonegap-plugins


【解决方案1】:
  1. 确保服务器代码返回一个 CORS 标头,授予来自其他站点的访问权限:

eg: header('Access-Control-Allow-Origin: *');

  1. 确保在您的服务器上禁用“ModSecurity”(如果您有 cPanel 访问权限,您应该能够通过 cPanel / Security 或类似的方式进行操作)

  2. 确保您已经安装了 cordova 白名单插件(使用 cordova pre v5.0.0 的“旧版”插件):

    $ cordova plugin 添加cordova-plugin-legacy-whitelist

  3. 在您的 cordova config.xml 中设置一个非常开放的白名单:

  4. 在您的 index.html 中设置内容安全策略:

这使得一切都在 WIDE 开放,而跨域、列入白名单的 URL 请求和内容安全策略的重点是限制跨域访问。我会把它作为一个练习来研究和限制安全性,等你让它工作起来。

我希望这会有所帮助。

参考资料:

https://github.com/apache/cordova-plugin-whitelist#content-security-policy https://cordova.apache.org/announcements/2015/04/21/plugins-release-and-move-to-npm.html http://content-security-policy.com/

【讨论】:

    【解决方案2】:

    您的 APP 允许域上是否有您尝试访问的域?您可以在 comfig.xml 上进行设置。

    【讨论】:

    • 抱歉,我们没有域名。大约一个月前它工作得很好。但不知道为什么现在它不起作用。
    • 检查此页面可能会有所帮助:docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html 您需要在白名单中设置域端点我不知道为什么它之前可以工作...也许这是最后的问题点。
    • 你能找到解决办法吗?
    • 为什么没有人能回答这个问题的解决方案?我有这个问题并且打了我好几天。有人有这个问题的答案吗?请帮助我们解决这个问题。太令人沮丧了...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2012-01-22
    • 1970-01-01
    相关资源
    最近更新 更多