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-whitelistcordova plugin add cordova-plugin-whitelist@latestcordova 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 文件返回整个代码?

从其他域登录 laravel 5.2

无法在 iPhone 的 PhoneGap 中使用 AJAX(简单 javascript)调用基于 REST 的 Web 服务

laravel 5.2 ajax 调用中的 TokenMismatchException