Cordova XHR通过使用file:///为url添加前缀来请求失败

时间:2016-06-27 08:03:54

标签: android ios angularjs ajax cordova

我的应用程序在cordova run browser之后运行正常,但是当使用cordova run ios(本地资源正确加载)部署到iOS时,它无法连接到我的后端服务器。

调试器告诉我问题可能是它将所有XHR请求作为file:///var后端服务器的前缀,因此它代替http://my-backend.com/rest它尝试连接到file:///varhttp://my-backend.com/rest

我安装了白名单插件,我的配置中为<access origin="*" />,部署到iOS时为index.html中的这一行:

    <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; content-src *">

如果它很重要,在前端我使用Angular和ngCordova和Restangular插件来处理AJAX请求。我使用Cordova 6.2.0。

所以问题是,如何摆脱这个file:///var前缀?

修改 事实证明,Android设备上存在类似的错误,但前缀为file:///android_asset

编辑2: 我的AJAX调用是使用Restangular进行的。我有默认网址设置如下: RestangularProvider.setBaseUrl("http://my-backend.com"),示例调用如下所示:Restangular.one('session/check').get()

0 个答案:

没有答案