关于http方法AngularJS的疑问

时间:2015-11-10 03:02:52

标签: angularjs http request

我使用AngularJs实现了一个请求,但是当我的服务器将badrequest返回给客户端时,错误函数的参数数据为空。

$http({
  method: args.method,
  url: URL+'/'+args.url,
  data: JSON.stringify(args.data),
  headers : {
        'Content-Type': 'application/json'
},
responseType: 'json'
}).success(function(data, status, headers, config) {
    //
}).error(function(data, status, headers, config) {
    console.log(data);
    console.log(status);
    console.log(headers);
    console.log(config);
});

但是当我使用jquery请求时它会起作用。

$.ajax({
        url: URL+"/"+args.url,
        data: JSON.stringify(args.data),
        dataType: "json",
        contentType: "application/json",
        type: args.method})
    .done(function (data, textStatus, xhr) {
         ;
    })
    .fail(function(xhr, textStatus, thrownError) {
        if (xhr.status == 400) {
            console.log(xhr.responseText);
        }

    });

输出Jquery Ajax:

  

测试

当服务器通过angularJS函数返回badrequest时,如何返回Post方法?

1 个答案:

答案 0 :(得分:0)

我可能错了,因为我不知道你的后端结构,但据我记得,AngularJS' $http服务将4个参数传递给其中一个回调:它只传递一个。

$http上引用Angular的文档:

// Simple GET request example:
$http({
  method: 'GET',
  url: '/someUrl'
}).then(function successCallback(response) {
    // this callback will be called asynchronously
    // when the response is available
  }, function errorCallback(response) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
  });

此外,文档继续定义response对象:

  

响应对象具有以下属性:

     

数据 - {string|Object} - 使用。转换的响应正文   变换函数。

     

状态 - {number} - 响应的HTTP状态代码。

     

标题 - {function([headerName])} - 标头获取功能。

     

config - {Object} - 用于生成的配置对象    请求。

     

statusText - {string} - 响应的HTTP状态文本。

所以,其中一个错误可能是你没有给它正确的回叫;它在vanilla JavaScript中是一个非常微不足道的问题,但我在过去经历过这两个问题:Angular和EmberJS。

尝试并获取要检查的响应的status后端是否正在返回正确的错误响应代码。如果是,那么Angular中的状态解析引擎就会出现问题。

据我记得,有几个这样的案例,但它们是固定的。最后,尝试使用AngularJS的最新稳定版本,并检查错误是否仍然存在。