我正在使用最新的 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 在线构建服务来构建应用程序。 我真的需要帮助,因为我已经完成了我能找到的所有修复,但还没有成功。
最佳答案
@纳比尔,
你很幸运。我目前正在整理 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
添加一些内容。进一步阅读文档以获取详细信息。
祝你好运
关于android - PhoneGap AJAX 请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33445491/