Phonegap Cordova Ajax请求404(未找到)错误

Sah*_*hil 58 ajax jquery http-status-code-404 cordova

我的cordova版本是5.0.0

我在设备上部署应用程序时发出的所有ajax请求收到404错误.在Web浏览器上,它工作正常,但在设备上部署时相同的应用程序不起作用.

我尝试添加以下内容来解决问题,但它没有帮助.

config.xml中

<access origin="*" />
Run Code Online (Sandbox Code Playgroud)

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" />
Run Code Online (Sandbox Code Playgroud)

我还在index.html文件中添加了以下内容,但它也没有任何区别.

<script>
    $.support.cors=true;
</script>
Run Code Online (Sandbox Code Playgroud)

这里的任何人都有另一个解决这个问题的技巧吗?对于phonegap来说似乎是一个非常普遍的问题,但上面的修复工作在phonegap/cordova的旧版本中有效,但在我的情况下没有.

任何帮助都会很棒.

小智 116

我有同样的问题,不得不安装cordova-plugin-whitelist

cordova plugin add cordova-plugin-whitelist
Run Code Online (Sandbox Code Playgroud)

感谢这篇stackoverflow文章 - Ajax命令请求URL不再有效

  • 非常感谢.我可以确认添加此插件使ajax工作.其他来这里寻求解决方案的人确保你更新config.xml并添加:<allow-navigation href ="http://yourdomain.co.uk/*"/> (8认同)
  • 我无法相信当前版本的Cordova _requires_这个插件,以便ajax请求工作.令人失望. (4认同)
  • 我不得不使用`cordova plugin add https:// github.com/apache/cordova-plugin-whitelist.git`来安装它. (2认同)

Dam*_*ien 22

它应该实际添加cordova白名单插件:

cordova plugin add cordova-plugin-whitelist
Run Code Online (Sandbox Code Playgroud)

或者在config.xml文件中:

<plugin name="cordova-plugin-whitelist" spec="1" />
Run Code Online (Sandbox Code Playgroud)

但如果您使用在线phonegap构建服务,则语法不同.您必须在config.xml文件中添加以下行:

<gap:plugin name="cordova-plugin-whitelist" source="npm" />
Run Code Online (Sandbox Code Playgroud)

并授权跨域请求:

<access origin="*" />
<allow-intent href="*" />
<allow-navigation href="*" />
Run Code Online (Sandbox Code Playgroud)

建议不要这样做,因为在任何地方都使用通配符,并允许一切.但它非常适合您的测试.