我一直試圖從工廠內的XMLHttpRequest API獲取JSON,但它最終返回undefined,即使它內部的日誌記錄表明它應該工作得很好。Cordova/AngularJS工廠GET JSON XMLHttpRequest
這裏是我的工廠代碼
.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();
}
}
})
這裏我所說的服務從我的控制器
$scope.test = MyService.getJSON("api url"); // Ends up as undefined
工廠觸發器內的console.log並正確顯示JSON,怎麼過$範圍。儘管我們將完全相同的JSON返回到$ scope.test,但測試最終仍然未定義。測試結果如下:如果有人知道爲什麼這樣做不起作用,那會很好,而不是k你
我啓用了交叉原點,否則console.log無法顯示從api位置獲取的有效JSON對象。 – Kilppari