首先,通过http的常规Ajax请求工作正常。当我尝试通过https执行完全相同的Ajax请求(GET)时,问题就开始了。
在使用WEINRE进行调试时,我可以在网络选项卡中看到请求处于暂挂状态,但是我得到假的空响应,其中包含status = 0和其他属性为空。不仅如此,服务器端也永远不会得到这些请求。看起来Android就是不让它们走了。
在构建应用之前,我在XDK的构建设置中设置了通配符*
:<access>
,<allow-intent>
,<allow-navigation>
。我还添加了以下CSP:
<meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src * 'unsafe-inline'; media-src *">
<meta http-equiv="Content-Security-Policy" content="default-src * https: 'unsafe-eval' 'unsafe-inline'">
其他事实:
1)如果我为iOS构建相同的应用程序,它可以正常工作。所以这只是Android的麻烦。
2)基于https的Ajax请求有时在Android中有效,但很少。所以我不能说它们每次都被阻止,但是我也无法找到它工作时的条件,什么时候也没有。但大多数时候它都不起作用。
3)它前段时间工作正常。我正在谈论的行为不久前出现了。我认为这个问题可能与服务器端的SSL证书有关(例如,它已过期),但桌面浏览器不会报告任何问题。 URL字符串仍为绿色。
答案 0 :(得分:0)
在menifest.xml文件中授予权限 与
<uses - permissions>
标签
答案 1 :(得分:0)
确认!问题出在SSL证书上。 Firefox中也无法访问服务器。我改变了证书后,一切都开始正常。