在Android上运行应用程序(在iOS上可用)时,AJAX调用失败。这是错误(其实是一个警告)我看到在Chrome浏览器开发工具:在发布模式下运行Android Cordova应用程序时,Ajax调用失败
临时标题显示
Request URL:https://server.com/api/index.php?ticket=ST-111111-ABCDEFG-cas
Request Headers
Provisional headers are shown
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Origin:file://
User-Agent:Mozilla/5.0 (Linux; Android 6.0; Google Nexus 5 - 6.0.0 - API 23 - 1080x1920 Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/40.0.0.0 Mobile Safari/537.36
Query String Parametersview sourceview URL encoded
ticket:ST-111111-ABCDEFG-cas
Form Dataview sourceview URL encoded
request:{"param1":"val1","param2":"val2"}
一切正常的调试模式。 我去年发布的Android版本仍然正常工作。所以它可能与Cordova的新版本有关。 下面是工具的版本我有:
- 节点版本:v4.4.3
- 科尔多瓦版本:6.2.0
- [email protected]
- Android SDK最新版
我没有设置在config.xml这些设置:
<allow-navigation href="*" />
<access origin="*" />
<allow-intent href="*" />
我使用白名单插件:
<plugin name="cordova-plugin-whitelist" spec="1" />
我还设置这个元index.html文件中:
<meta http-equiv="Content-Security-Policy" content="default-src *; img-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
有没有其他的科尔多瓦设置我忘了设置?我已经删除并重新添加了Android平台到我的项目中,更新了我所有的插件,但我仍然得到相同的Ajax错误。
请帮忙。
您现在有解决方案吗?我有同样的问题,不确定是否有SSL问题。它只发生在一些设备上,比如moto x。 –
是的,这是一个SSL问题。 Android最新版本并未完全信任HTTPS证书。一旦使用更强大的加密技术重新生成了证书,该应用即可在Android上重新开始工作。 – Yuri