我尝试使用带有jQuery库的JS从服务器(我做的,我有完全访问权限)加载数据。这在浏览器中完美运行。但现在我试图让它在手机上工作。由于某种原因,这不起作用。
我将以下设置添加到config.xml
:
<access origin="*"/>
<plugin name="cordova-plugin-whitelist" version="1"/>
<allow-intent href="http://*/*"/>
<allow-intent href="https://*/*"/>
<allow-intent href="tel:*"/>
<allow-intent href="sms:*"/>
<allow-intent href="mailto:*"/>
<allow-intent href="geo:*"/>
<platform name="android">
<allow-intent href="market:*"/>
<allow-intent href="*"/>
</platform>
<platform name="ios">
<allow-intent href="itms:*"/>
<allow-intent href="itms-apps:*"/>
</platform>
我还添加了一些HTML元标记:
<meta http-equiv="Content-Security-Policy"
content="default-src *;
style-src 'self' 'unsafe-inline' 'unsafe-eval';
script-src 'self' 'unsafe-inline' 'unsafe-eval';">
这是我的AJAX电话:
$.ajax({
url: "http://domain.com/Rooster/schedule",
data: {token : 's0m3r4nd0mt0k3n', user : '~me'},
type: "GET",
crossDomain: true,
success: function( response ) {
\\irrelevant success function.
}
});
}
希望有人可以让这个工作!
答案 0 :(得分:1)
@大卫
你犯了一个常见的错误。您需要应用whitelist
系统。从Cordova Tools 5.0.0开始(2015年4月21日)。对于 Phonegap Build ,这意味着自cli-5.1.1
(2015年6月16日)
使用以下内容替换config.xml
中的内容(上面列出的内容):
<plugin name="cordova-plugin-whitelist" source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->
注意您的应用程序现在已不确定。由您来保护您的APP。
使用以下内容修改您的index.html
:
<meta http-equiv="Content-Security-Policy"
content="default-src *;
style-src * 'self' 'unsafe-inline' 'unsafe-eval';
script-src * 'self' 'unsafe-inline' 'unsafe-eval';">
注意您的应用程序现在已不确定。由您来保护您的APP。
快速提示:您可以通过删除所有&#34;内联&#34;来传递更多CSP(内容安全策略)。 javascript和style(css)。把它们放在一个单独的文件中。我将在本月晚些时候在博客上发表论文。新的&#34;最佳实践&#34;对于混合应用移动&#34;内联&#34;分开文件。
此白名单工作表可以帮助您保护自己的应用 HOW TO apply the Cordova/Phonegap the whitelist system - 最好的运气
答案 1 :(得分:0)
你有白名单插件吗?这通常是这个错误的起源
答案 2 :(得分:0)
您的内容安全策略可能需要添加一个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://domain.com">
connect-src控制您可以向哪些外部服务器发出Ajax类型请求。要获得完整说明,请查看this blog post和Content Security Policy Reference网站。