从build.phonegap.com服务器构建android apk后,ajax响应不起作用



我已经在我的cordova phonegap android项目中调用了ajax。ajax响应来自外部url。当从eclipse构建apk时,它运行良好,但在将项目zip上传到build.phonegap.com服务器并生成apk之后。这个apk不会给出ajax响应。我添加了'和'进入我的config.xml页面,ajax响应来自该页面http://example.com/subdomain.

您可能需要在index.html的头部设置一个适当的内容安全策略元标记。您的本地Cordova/Phonegap Eclipse版本可能比Phonegap Build版本更旧,不需要这样做。

Cordova 5及更新版本需要Content Security Policy元标记,并且默认情况下不允许外部Ajax请求。

您需要配置connect-src子句以允许*(所有服务器)或列出您想要连接的服务器。

示例:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; connect-src http://myserver.mydomain.com">

如果您想限制应用程序获取数据的位置,请将myserver.mydomain.com更改为*(适用于所有服务器)或空格分隔的URL列表。

这里有一篇博客文章可以详细解释这一点。

最新更新