【问题标题】:PhoneGap AJAX request not workingPhoneGap AJAX 请求不起作用
【发布时间】:2015-10-30 21:55:56
【问题描述】:

我正在使用最新的 PhoneGap 版本,并进行 ajax 调用。

$.ajax({
            type      : 'POST',
            url       : 'http://example.com/path to my API', 
            data      : {d1: v1, d2: v2},
            dataType  : 'json',
            success   : function(data) {
                           console.log(data);
                        },
            error     : function(){
                            alert('Error');
                        }
}); 

当我在桌面浏览器或手机 PhoneGap Developer App 上测试我的应用程序时,它工作正常,但在构建应用程序 (.apk) 后,ajax 请求不起作用并且失败而不是成功。我已经完成了所有提到的配置,包括:

<access origin="*" />
 <plugin name="cordova-plugin-whitelist" version="1" />
    <allow-navigation href="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />

还在我的 HTML 中添加了 Content-Security-Policy 元标记并指向我的 API 所在的域:

<meta http-equiv="Content-Security-Policy" content="connect-src 'self' http://example.com/">

我正在使用 PhoneGap 在线构建服务来构建应用程序。 我真的需要帮助,因为我已经完成了我能找到的所有修复,但还没有成功。

【问题讨论】:

    标签: android jquery ajax cordova phonegap-build


    【解决方案1】:

    @纳比尔, 你很幸运。我目前正在整理blog post on whitelist

    如下更改您的 CSP。它应该可以解决问题

    <meta http-equiv="Content-Security-Policy" 
              content="default-src *; 
                       style-src 'self' 'unsafe-inline' 'unsafe-eval'; 
                       script-src 'self' 'unsafe-inline' 'unsafe-eval';">
    

    如果您使用的是 iOS9,则需要为 Apple 的 ATS 添加一些内容。进一步阅读文档以获取详细信息。

    祝你好运

    【讨论】:

    • 我删除了我上面提到的 CSP,并添加了你的。但仍然是同样的问题。在浏览器和 PhoneGap Developer App 上工作正常,但在构建 .apk 并运行应用程序后无法工作。 Ajax 请求仍然失败。请帮忙。
    • PhoneGap 示例配置具有 。所以我的 config.xml 中有相同的行。将其更改为 为我解决了问题。
    • @Nabeel,在您的问题中没有提到您正在使用 Phonegap Build。请阅读Top Mistakes by Developers new to Cordova/Phonegap
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    相关资源
    最近更新 更多