Javascript POST请求的实现问题(angularjs($http))

Javascript POST请求的实现问题(angularjs($http)),javascript,angularjs,Javascript,Angularjs,POST请求的实现问题(angularjs($http)) 我正在尝试执行POST请求,但出现以下错误: Error: Unexpected request: POST http://192.168.88.54:3000 No more request expected at $httpBackend (file:///Users/vasyasemenov/workspace/tamua/ogogo-frontend/build/vendor/angular-mocks/angular-mock

POST请求的实现问题(angularjs($http))

我正在尝试执行POST请求,但出现以下错误:

Error: Unexpected request: POST http://192.168.88.54:3000
No more request expected
at $httpBackend (file:///Users/vasyasemenov/workspace/tamua/ogogo-frontend/build/vendor/angular-mocks/angular-mocks.js:1176:9)
at sendReq (file:///Users/vasyasemenov/workspace/tamua/ogogo-frontend/build/vendor/angular/angular.js:7721:9)
at serverRequest (file:///Users/vasyasemenov/workspace/tamua/ogogo-frontend/build/vendor/angular/angular.js:7455:16)
at wrappedCallback (file:///Users/vasyasemenov/workspace/tamua/ogogo-frontend/build/vendor/angular/angular.js:10696:81)
at wrappedCallback (file:///Users/vasyasemenov/workspace/tamua/ogogo-frontend/build/vendor/angular/angular.js:10696:81)
at file:///Users/vasyasemenov/workspace/tamua/ogogo-frontend/build/vendor/angular/angular.js:10782:26
at Scope.$eval (file:///Users/vasyasemenov/workspace/tamua/ogogo-frontend/build/vendor/angular/angular.js:11697:28)
at Scope.$digest (file:///Users/vasyasemenov/workspace/tamua/ogogo-frontend/build/vendor/angular/angular.js:11525:31)
at Scope.$apply (file:///Users/vasyasemenov/workspace/tamua/ogogo-frontend/build/vendor/angular/angular.js:11803:24)
at HTMLButtonElement.<anonymous> (file:///Users/vasyasemenov/workspace/tamua/ogogo-frontend/build/vendor/angular/angular.js:17690:21) 

错误在哪里?谢谢

我不确定这是否是问题所在,但我以前在将对象作为数据参数传递到
$http.post
时遇到过问题

为了纠正我过去使用jQuery的
$.params(data)

data = {
    someVar : someVal,
    anotherVar : anotherVal
};
return $http({
        method : 'POST',
        url : 'someURL/path/to/api/script',
        params : data,
        headers : {'Content-Type' : 'application/x-www-form-urlencoded'}
    }).success(function(response){
        return (angular.isDefined(response.data.result)) ? response.data.result : response.data.error;
    }).error(function(response){
        return { data : response.data, status : response.status };
    });

当传递
$http
配置对象时,数据为
params
var进行JSONified。当然,您已经使用提供者设置了标题。还有一个数据配置属性,我没有使用它,但我认为它也有相同的功能,只是没有将数据JSONify化为字符串,而是将其作为消息数据合并到标题中。

为什么在
$http.post
调用中使用
$q
$http
已经返回了一个承诺,只需返回该承诺,然后返回成功或错误链接调用中的数据。您知道什么是“延迟反模式”吗?看看你是不是在进行单元测试?我在错误输出中看到了
$httpBackend
,这是一个模拟对象,用于测试
$http
请求,而无需实际联系服务器。不,这不是测试。我不明白为什么会有这样的错误……我见过这样的例子,但情况是相似的。
data = {
    someVar : someVal,
    anotherVar : anotherVal
};
return $http({
        method : 'POST',
        url : 'someURL/path/to/api/script',
        params : data,
        headers : {'Content-Type' : 'application/x-www-form-urlencoded'}
    }).success(function(response){
        return (angular.isDefined(response.data.result)) ? response.data.result : response.data.error;
    }).error(function(response){
        return { data : response.data, status : response.status };
    });