Http Post请求在角度js中没有成功(1.5)

时间:2018-01-09 08:58:46

标签: angularjs angular-http

我正在处理角度JS(1.5)中的HTTP post请求。

首先,我将请求数据传递给工厂方法。调用Http post请求并将响应发送回控制器。但我总是得到以下错误:

无法加载资源:服务器响应状态为404(未找到)

以下是我的控制器代码:

app.controller("logicCtrl",['$scope','getDestinationService','getVehicleService','getTokenService','getResultService','$http', 
            function($scope, getDestinationService,getVehicleService,getTokenService,getResultService,$http){

        $scope.getResult = function(){

        var resultPromise = getResultService.getFinalResult($scope.request_data);

         resultPromise.then(function(result){
                $scope.result = result.data;
                console.log("result:"+$scope.result);
        });
      }
    });

这是我的工厂方法:

app.factory("getResultService",['$http','$q',function($http, $q){
    var getResultApi = "https://findfalcone.herokuapp.com/find";
    var headers = {'Accept' : 'application/json'};

    var getFinalResult = function(request_data){
        var deferred = $q.defer();
        var request_data = JSON.stringify(request_data);
        return $http({
        url: getResultApi,
        method: "POST",
        data: request_data,
        headers: {'Accept' : 'application/x-www-form-urlencoded'}
        }).then(function (response) {
             if (typeof response.data === 'object') {
                  deferred.resolve(response.data);
              } else {
                  deferred.reject(response.data);
              }
        }).catch(function(response) {
              return deferred.reject(response.data);
        });
        return deferred.promise;
    }; 
    return { getFinalResult: getFinalResult };

}]);

编辑:有些人直接在浏览器中点击网址并说网址无法正常工作。它不会以这种方式工作,因为它是后调用,而不是调用。我尝试在Postman中测试这个URL,它工作得非常好。 以下是截图:

enter image description here

1 个答案:

答案 0 :(得分:0)

getFinalResult中,您将Accept标头覆盖为application/x-www-form-urlencoded,而应将其标为application/json。您没有使用先前声明的标头变量。

免责声明:我编写了Finding Falcone后端应用程序。