在Ionic框架中,在控制器内部,我有以下非常简单的Angular http get调用:
$http({
method: 'GET',
timeout: '9999',
responseType: 'json',
url: 'see below'
}).then(function successCallback(response) {
console.log('WORKS');
alert(response.status);//200 OK
}, function errorCallback(response) {
console.log('ERROR');
alert(response.status);// always empty, why?
});
// works:
// http://maps.googleapis.com/maps/api/geocode/json?address=77379&sensor=true
// http://www.omdbapi.com/?t=lord
// fail:
// http://md5.jsontest.com/?text=1234
当你在底部调用url时,其中两个工作,其中两个失败。
为什么会这样?我试过了:
我还能尝试什么?谢谢你的帮助!
答案 0 :(得分:0)
我看不出你的问题是什么。看看我的Plunker:http://plnkr.co/edit/X3TuhyBgs3AOF6ekvwbi?p=preview
尝试格式化GET
请求,如下所示:
$scope.getFromUrl = function(url) {
$http.get(url).then(function(response){
$scope.response = response.data;
},function(){
alert("no");
});
}
答案 1 :(得分:0)
原来这是一个CORS问题,但Firefox本机调试器和Firebug并没有告诉你任何提示。如果您有PHP服务器端脚本,请尝试使用以下对我有用的标题:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('content-type:application/json; charset=utf-8');
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
您还可以使用http://test-cors.org/来测试服务器端代码。