我的cordova版本 5.0.0
我在设备上部署应用时发出的所有ajax请求收到404错误。在Web浏览器上,它工作正常,但在设备上部署时,相同的应用程序无效。
我尝试添加以下内容来解决问题,但它没有帮助。
的Config.xml
<access origin="*" />
AndriodManiest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
我还在index.html文件中添加了以下内容,但它也没有任何区别。
<script>
$.support.cors=true;
</script>
这里的任何人都有另一个解决这个问题的伎俩吗?对于phonegap来说似乎是一个非常普遍的问题,但上面的修复工作在phonegap / cordova的旧版本中有效,但是在我的情况下没有这些工作。
任何帮助都会很棒。
答案 0 :(得分:113)
我遇到了同样的问题,不得不安装cordova-plugin-whitelist
cordova plugin add cordova-plugin-whitelist
归功于此stackoverflow文章 - Ajax Command to request URL no longer working
答案 1 :(得分:21)
它实际上应该添加cordova白名单插件:
cordova plugin add cordova-plugin-whitelist
或在您的config.xml文件中:
<plugin name="cordova-plugin-whitelist" spec="1" />
但如果您使用在线phonegap构建服务,则语法不同。您必须在config.xml文件中添加以下行:
<gap:plugin name="cordova-plugin-whitelist" source="npm" />
并授权跨域请求:
<access origin="*" />
<allow-intent href="*" />
<allow-navigation href="*" />
不建议这样做,因为在任何地方都使用了通配符,并允许一切。但它非常适合您的测试。
答案 2 :(得分:1)
这对我有用。唯一的区别是在我的config.xml中我必须将它放在一个节点才能使它生效。
我的例子如下:
<platform name="android">
<allow-intent href="market:*" />
<access origin="*" />
<allow-intent href="*" />
<allow-navigation href="*" />
</platform>
答案 3 :(得分:0)
Phonegap用户。将此行添加到config.xml中是我的解决方案:
<gap:plugin name="cordova-plugin-whitelist" source="npm" />
答案 4 :(得分:0)
我的问题有点不同。我使用CI管道编译了该应用程序。因此,您仍然需要执行上述所有操作(安装白名单并添加Internet权限)
,您还需要找到可以正确构建应用程序的Visual Studio版本。我的在构建时没有给出错误,但是生成的应用程序无法发出任何ajax请求
我降级到VS2017后,它可以正常工作