我有Cordova > 4.0.0,所以它具有CSP和白名单安全措施。
在浏览器中,我可以向API发出请求,但在Android设备上,它会给我这个错误:
file:///http:/xxx.xxx.xxx/api/Login/DoLogin
未能加载资源:net :: ERR_FILE_NOT_FOUND
我搜索了解决方案,但没有任何作用。
根据Cordova Whitelist Plugin文档,我的config.xml具有以下字段:
在浏览器中,我可以向API发出请求,但在Android设备上,它会给我这个错误:
file:///http:/xxx.xxx.xxx/api/Login/DoLogin
未能加载资源:net :: ERR_FILE_NOT_FOUND
我搜索了解决方案,但没有任何作用。
根据Cordova Whitelist Plugin文档,我的config.xml具有以下字段:
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" />"
信息:我尝试了多种参数组合,使用API的URL。(例如:<access origin="http://xxx.xxx.xxx/" subdomains="true" />
)
在我的Index.html中,我有这个CSP:
<meta http-equiv="Content-Security-Policy"
content="default-src *; style-src * 'self' 'unsafe-inline' 'unsafe-eval';
script-src * 'self' 'unsafe-inline' 'unsafe-eval';">
信息:我已经尝试了Cordova Whitelist Plugin提供的其他CSP组合。
所以,在任何人询问之前,我已经安装了:
- cordova-whitelist-plugin
并且使用Restangular进行请求。
我无法解决它,有人可以帮我吗?
编辑:请求代码
我使用Ionic,所以在浏览器中存在CORS问题,为了解决这个问题,我在ionic.project文件中使用了代理,但只有在浏览器中才会调用它,在设备上不会使用它。var baseLogin = Restangular.all('http:/xxx.xxx.xxx/api/Login/DoLogin');
dataApi.doLogin = function (var1, var2, var3, var4, var5) { // $http() returns a $promise that we can add handlers with .then() var parameter = null; parameter = { var1: var1, var2: var2, var3: var3, var4: var4, var5: var5 }; return baseLogin.post(parameter); };