私は、工場内でXMLHttpRequestを使用してAPIからJSONを取得しようとしていましたが、その内部のログにはうまくいくはずです。Cordova/AngularJSファクトリGET JSON XMLHttpRequest
は、ここで私は私のコントローラ
$scope.test = MyService.getJSON("api url"); // Ends up as undefined
工場トリガーの内部にconsole.logからサービスを呼び出すここに私の工場コード
.factory('MyService', function(){
return {
getJSON: function(path){
var xhr = new XMLHttpRequest();
xhr.open("Get", path, true);
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
if(xhr.status === 200){
console.log(JSON.parse(xhr.responseText)); // Displays a correct JSON object
return JSON.parse(xhr.responseText); // Returns said object
}else{
return xhr;
}
}
};
xhr.send();
}
}
})
あると、正しくJSONを表示する方法をこれまで$スコープ。テストは$ scope.testにまったく同じJSONを返してもテストは未定義に終わります
なぜこれが機能しないのか分かっている人は、 kあなたは
クロスオリジンを有効にしました。そうしないと、console.logはapiの場所から取得された有効なJSONオブジェクトを表示できませんでした。 – Kilppari