Cordova + Angularjs -为什么从回调函数内部调用$resource(或$http)会返回404

Cordova + Angularjs - Why does $resource (or $http) called from inside a callback give a 404?

本文关键字:resource http 返回 调用 Angularjs 为什么 内部 函数 回调 Cordova      更新时间:2023-09-26

我将一个功能完美的angularjs web应用程序转换成cordova,并为ios编译。在ios测试中,如果我尝试从回调响应中访问本地文件(也访问本地文件,我得到了一个非常可观的200),我得到一个404。我改变了它,所以初始请求和来自回调的请求都是同一个文件。还是同样的错误。如果我将其更改为远程url,则可以正常工作。代码如下:

function promiseFunc1() {
  var wait = $q.defer();
  $http.get('config/resources.json').success(function (data, status, headers, config) {
    wait.resolve(data);
  });
  return wait.promise; 
}
function promiseFunc2() {
  var wait = $q.defer();
  $http.get('config/resources.json').success(function (data, status, headers, config) {
    wait.resolve(data);
  });
  return wait.promise; 
}
promiseFunc1()
 .then(function (result) {
   return promiseFunc2()
 })
 .done()
谁能给我指个正确的方向?

如果您的config文件夹在www之外,则使用

$http.get('../config/resources.json')

我认为这是导航器(CORS)访问文件的安全性。

所以你需要在链接中使用API phonegap:

http://docs.phonegap.com/en/2.5.0/cordova_file_file.md.html文件