为什么Angular中的jsonp总是返回404错误状态?

时间:2014-06-11 13:13:41

标签: javascript angularjs

如果服务器发回各种错误(如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>

谢谢你的推荐!

1 个答案:

答案 0 :(得分:0)

非常简单,403,500个错误无法满足请求,因此您无法获取状态代码。有关协议错误,请查看此文档 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4