我正在尝试对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)
})
}
})
答案 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,这解决了问题。