[英]Angular $http.get() does not work in Phonegap DevApp
对于我的Phonegap应用,我正在尝试使用角度$ http加载JSON文件。
我得到了这项服务:
cApp.factory('language', function ($http) {
return {
getLanguageData: function () {
return $http.get('../../lang/' + lang.substr(0,2) + '.json');
}
}
});
我在此控制器中使用的:
cApp.controller('initController', function ($scope, language) {
language.getLanguageData().success(function (data) {
$scope.language = data;
}).catch(function (e) {
alert("error" + e);
});
});
这在我的浏览器中工作正常,但在Android上的Phonegap Developerapp中却无法正常工作。 控制器不编写language
变量,也不发出任何警告(甚至不发出“错误”)。
我试过的
使用.catch().then().catch()
链,它向我返回了在最后一个.catch()
为null
数据。
我想知道这是否是跨源问题,但是我的phonegap白名单允许所有域( <access origin="*" />
)。
无论如何,这些文件应位于相同的域中,因为我的文件夹结构如下所示:
.myapp
├── www
| ├── js
| | ├── controller
| | | └── initController.js
| | └── service
| | └── language.js
| └── lang
| ├── en.json
| └── de.json
└── config.xml
我在做什么错了,想念吗?
更新:找到部分解决方案:
如果我使用整个路径执行get()
它将起作用:
return $http.get('file:///data/data/com.adobe.phonegap.app/files/phonegapdevapp/www/json/lang/' + lang.substr(0,2) + '.json');
这不是一个合适的解决方案,因为它无法在iOS(不同的路径)上运行。 我不明白为什么我不能使用../../lang/
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.