如果服务器发回各种错误(如400,403等),我总是从jsonp调用结果得到404(在错误分支中我的意思)...这是一个预期的行为吗?如何像浏览器控制台那样获取真正的错误代码?即,400为400,500为500,而不是总是404?
以下是我的代码(请将YOUR_LINK_HERE替换为您要测试的任何链接):
<!DOCTYPE html>
<html ng-app="angularApp">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>Boxkeeply</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.17/angular.min.js"></script>
<script type="text/javascript">
angular.module('angularApp', [])
.controller('MainCtrl', function($scope, $rootScope, $http) {
var JsonURI = "YOUR_LINK_HERE?callback=JSON_CALLBACK";
$http.jsonp(JsonURI).
success(function(data, status, headers, config) {
if(data.httpResponse.statusCode==200){
alert("success!")
}
else{
}
}).
error(function(data, status, headers, config) {
alert("error code: "+status)
});
});
</script>
</head>
<body ng-controller="MainCtrl">
</body>
</html>
谢谢你的推荐!
答案 0 :(得分:0)
非常简单,403,500个错误无法满足请求,因此您无法获取状态代码。有关协议错误,请查看此文档 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4