phonegap 5.2 ajax 调用最近抛出 404 [重复]
Posted
技术标签:
【中文标题】phonegap 5.2 ajax 调用最近抛出 404 [重复]【英文标题】:phonegap 5.2 ajax calls throwing 404 recently [duplicate] 【发布时间】:2015-09-28 10:47:41 【问题描述】:我的代码在我的本地和 phonegap 版本中运行良好,直到一周前。 现在我所有的互联网电话都开始失败了。 ajax 开始。我收到 404 响应。
我看到了下面的链接以及更多与它们相似的链接。只需添加插件和access-origin = "*"
似乎就可以解决他们的问题。
我之前也有这个插件,现在我在插件中添加了源代码和版本来尝试。
我的猜测是我的代码在这里遗漏了一些次要或基本的东西。我使用的 Phonegap 版本是 5.2
参考网址: Cordova / Phonegap All External Ajax Requests Returns 404 Phonegap Build .ajax request returning 404
清单有以下几行:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
config.xml
<access origin="*" />
<plugin name="cordova-plugin-whitelist" source="npm" version="1.1.0" />
<allow-intent href="*" />
<allow-navigation href="*" />
ajax 调用代码:
var url_built_for_ip = "http://abc.xyz.com/whatsMyName/abc";
if (window.XMLHttpRequest)
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
else
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.onreadystatechange=function()
alert("state changed "+xmlhttp.status)
xmlhttp.open("GET",url_built_for_ip,true);
xmlhttp.send();
注意:当我从 phonegap 应用程序运行相同的代码时,它运行良好(ajax 调用工作正常。) 这可能看起来像一个重复的问题,但事实并非如此,因为我已经提到了为类似问题提供解决方案的其他问题,只是这些解决方案对我不起作用。
感谢您的支持!!!
【问题讨论】:
【参考方案1】:我刚遇到这个问题,我做了一些事情来解决它,不确定是哪个解决了它。
跑cordova plugin remove cordova-plugin-whitelist
跑cordova plugin add cordova-plugin-whitelist@latest
跑cordova prepare android
从安卓手机中删除了该应用
跑cordova run android --device
现在它可以工作了。
【讨论】:
【参考方案2】:因为白名单默认会阻止外部调用
添加这个插件,如果还没有添加的话
https://github.com/apache/cordova-plugin-whitelist
并将此元标记添加到您的 html 中
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"/>
【讨论】:
以上是关于phonegap 5.2 ajax 调用最近抛出 404 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
PhoneGap 跨域 ajax 与 PhoneGap 开发者应用程序和 cli
Ajax 调用如何在移动应用程序 (PhoneGap) 中工作,但在 PC 浏览器中却没有?
Android/sencha/phonegap ajax 调用本地 php 文件返回整个代码?
无法在 iPhone 的 PhoneGap 中使用 AJAX(简单 javascript)调用基于 REST 的 Web 服务