我正在处理角度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,它工作得非常好。 以下是截图:
答案 0 :(得分:0)
在getFinalResult
中,您将Accept
标头覆盖为application/x-www-form-urlencoded
,而应将其标为application/json
。您没有使用先前声明的标头变量。
免责声明:我编写了Finding Falcone后端应用程序。