我的应用程序在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()