Ionic Android无法通过Cordova白名单进行AJAX调用



有人知道我如何授予Android Ionic应用程序跨域$http调用的权限吗?

我尝试了这篇文章中提到的建议:离子+角度-如何避免";404未找到(来自高速缓存)";POST请求之后?

我的内容安全元标记设置为接受所有内容,但我的应用程序仍然不允许任何AJAX调用(AngularJS $http.get)。

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"> 

错误在中

ionic.bundle.js:17746,错误消息"failed"

(没有详细信息)。我尝试拨打的电话不是https。

在iOS中运行良好。

示例调用:

$http.get(AppConfig.apiHost + "/api/user/", 
{params: {user_id: target_user_id}})
.success(function (target_user) { // do something})
.error(function (error) { console.log(error)});

下方评论的澄清

这是我的config.xml:https://gist.github.com/metalaureate/6f8237b673dacc1412c0b928b7a3d9e5

Cordova CLI:6.0Ionic版本:1.0.0-rc.0Ionic CLI版本:1.7.14Ionic App Lib版本:0.7.0ios部署版本:1.8.5ios sim版本:5.0.6操作系统:Mac OS X El Capitan节点版本:v0.12.2Xcode版本:Xcode 7.3构建版本7D175

插件:cordova插件应用程序事件,cordova插卡,cordoa插件相机,cordo娃插件联系人,cordova-插件设备,cordo娃-插件文件,cordovan-插件文件传输,cordoval-插件图像选择器,cordov-plugin-inappbrowser,cordo伐-插件白名单,cordoa-plugin-x-socialsharing,cordo-vplugin-x-toast,de.appplant.cordova.plugin.本地通知,phonegap-plugin推送

所有AJAX调用都失败。

所有测试在一个真正的三星S4

这是一个非常不具体的错误,但以下是一些建议,您可以尝试找出问题的原因:

  • 如果您的设备具有Android<4.4:更新它,在另一台更新版本的设备上试用,或者在旧的Android版本上使用Crosswalk使用CSP功能
  • 更新您的离子源
  • 特别是在CSP设置中将API主机URL列入白名单。也就是说,default-src *应该涵盖这一点。您也可以尝试完全删除CSP内容:<meta http-equiv="Content-Security-Policy">(不建议用于生产!)
  • 您能否从设备上的任何其他应用程序访问API主机(或任何其他URL)?如果没有,您可能需要检查测试设备的Wifi连接;)

你能在简单的安卓chrome浏览器上点击url吗?你可以在googleapis.com元标签后面的标签中添加<meta http-equiv="Content-Security-Policy" content="default-src 'self' https://maps.googleapis.com/ https://maps.gstatic.com/ 'unsafe-inline' 'unsafe-eval'">,其中"http://your url"。

我认为这可能是CORS的问题。如果可能的话,你可以尝试在ionic.project文件中进行更改并添加一个新的属性吗

 {
2   "name": "app",
3   "app_id": "",
4   "proxies": [{
5     "path": "/api/myurl",
6     "proxyUrl": "http://Your-URL"
7   }]
8 }

并通过路径名而不是url 进行获取请求

$http.get('/api/myurl/')

参考文献:-http://ionicinaction.com/blog/how-to-fix-cors-problems-and-no-access-control-allow-origin-header-errors-with-ionic/

http://ionicinaction.com/blog/how-to-fix-cors-issues-revisited/

IONIC,访问控制允许始发

ionic应用程序无法将启用cors的服务器与$http 连接

http://blog.ionic.io/handling-cors-issues-in-ionic/

现在,同样的问题并没有发生在科多瓦身上。

希望有帮助。

添加了插件

ionic plugin add https://github.com/apache/cordova-plugin-whitelist.git

最新更新