2016-09-29 67 views
0

这里是函数来处理我的形式我怎样才能改变一个HTTP POST请求的URL,如果有一个错误

  $scope.processForm = function() { 

       var url = 'http://localhost:8080/tickets/' 

       $http({ 
        method: 'POST', 
        headers: {'Content-Type': 'application/json; charset=UTF-8'}, 
        url: url, 
        data: JSON.stringify($scope.formData) 
       }).then(function successCallback(response) { 
        //log 
        console.log("ticket purchased"); 

       }, function errorCallback(response) { 
        var requestID = JSON.stringify(response.data.requestID); 
        console.log("purchase failed"); 
     }); 

我想什么做的是requestID追加到URL的末尾如果有错误。

如果有错误,那么URL应该改变的下方,一旦他们再次提交:

var url = 'http://localhost:8080/tickets/'+ requestID 

回答

1

您正在寻找附加您所提交数据的URL结束的RequestID,正确?

一种选择是将URL或requestID存储在$ scope上。

$scope.url = 'http://localhost:8080/tickets/'; 

$scope.processForm = function() { 

      $http({ 
       method: 'POST', 
       headers: {'Content-Type': 'application/json; charset=UTF-8'}, 
       url: $scope.url, 
       data: JSON.stringify($scope.formData) 
      }).then(function successCallback(response) { 
       //log 
       console.log("ticket purchased"); 

      }, function errorCallback(response) { 
       var requestID = JSON.stringify(response.data.requestID); 
       $scope.url = 'http://localhost:8080/tickets/' + requestID; 
       console.log("purchase failed"); 
    }); 
+0

谢谢,这帮助我想出了一个解决方案。 – Martin

0

我想出了如何实现我最终想要的。我将url和requestID保存在$ scope中。

if ($scope.requestID == null) { 
    $scope.url = 'http://localhost:8080/tickets/'; 
} 
else if ($scope.requestID !== null && $scope.firstTransaction == null) { 

    $scope.firstRequest = $scope.requestID; 

    console.log("first transaction id = " + $scope.requestID) 

    $scope.url = 'http://localhost:8080/tickets/' + $scope.firstRequest; 

} 

$scope.processForm = function() { 

     $http({ 
      method: 'POST', 
      headers: { 
       'Content-Type': 'application/json; charset=UTF-8' 
      }, 
      url: $scope.url, 
      data: JSON.stringify($scope.formData) 
     }).then(function successCallback(response) { 
      //log 
      console.log("ticket purchased"); 

     }, function errorCallback(response) { 
      var requestID = JSON.stringify(response.data.requestID); 
      $scope.url = 'http://localhost:8080/tickets/' + requestID; 
      console.log("purchase failed"); 
     }); 
相关问题