$ http.post导致OPTIONS 596错误或参数不足

时间:2015-06-26 10:47:41

标签: angularjs http-post

我正在尝试对api端点(http://developer.zoopla.com/docs/read/Arrange_Appraisals)进行$ http.post调用,但我收到一些选项错误。我试图直接使用params传递url,就像你在get请求中所做的那样,也尝试通过传递一个对象作为第二个参数。我在这里创建了一个Plunker(http://plnkr.co/edit/0W1egx30DeCNwhC8OdSo?p=preview),请告知哪个是正确的方法以及导致错误的原因。

 angular.module('someApp',[])
 .controller('someCtrl',function($scope,$http){
        $scope.data = {
                        branchId : 49953,
                        propertyId : 5646166,
                        custName : 'Joe',
                        custEmail : 'Joe123@gmail.com',
                        custNumber : '07978765543',
                        custNumberType : 'mobile',
                        custTime : 'anytime',
                        custMessage : 'some random message',
                        custEnquiryType : 'arrange_valuation',
                        api_key :  'Please look in plunker attached'
                        }
   $scope.url = 'http://api.zoopla.co.uk/api/v1/arrange_appraisal.js'     
   $scope.postData = function(){
     alert('Please check console for error')
     $http.post($scope.url,$scope.data)
          .success(function(res){
            console.log(res)
          })
          .error(function(err){
            console.log(err)
          })
   }
    $scope.postData2 = function(){
     alert('Please check console for error')
     $http.post('http://api.zoopla.co.uk/api/v1/arrange_appraisal.json?branch_id=18269&property_id=5646170&name=somename&email=someemail@yahoo.com&phone=07476566718&phone_type=mobile&best_time_to_call=afternoon&message=hello&type_of_enquiry=looking_to_sell&api_key=pleaseCheckPlunker')
          .success(function(res){
            console.log(res)
          })
          .error(function(err){
            console.log(err)
          })
   }
 })

2 个答案:

答案 0 :(得分:0)

payLoad的语法不正确。

 $scope.data = {'branchId' : 49953,'propertyId' : 5646166,'custName' : 'Joe', // and so on.... };

另外,在url的末尾添加一个反斜杠:

$scope.url = 'http://api.zoopla.co.uk/api/v1/arrange_appraisal.js/';

答案 1 :(得分:0)

最后发现端点只接受GET而不接受POST,这解决了问题。