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

时间:2015-05-05 08:59:32

标签: jquery ajax cordova http-status-code-404

我的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的旧版本中有效,但是在我的情况下没有这些工作。

任何帮助都会很棒。

5 个答案:

答案 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后,它可以正常工作