2014-03-31 248 views
1

我是Angular的新手,所以我可能犯了一個基本的錯誤。我在使用$ http服務時遇到問題。我將我的方法聲明爲POST,但參數被附加到URL,就像我使用GET一樣。我的代碼在下面,有什麼想法?

$http({ 
    method: 'POST', 
    url: URL, 
    params: { 
     Source: 'Blog', 
     Header: entry.Header, 
     Body: entry.Body, 
     ID: entry.ID, 
     IsLive: entry.IsLive 
    } 
}).success(function (data, status, headers, config) { 
}).error(function (data, status, headers, config) {   
}); 
+4

使用「數據」,而不是「PARAMS」 – Sai

回答

2

可能您沒有定義'條目'。添加到模型($ scope.entry對象),看看例子:

myControllers.factory('sqlFactory', ['$http', function($scope, $http){ 
var f = {}; 

f.get = function($scope, $http){ 
    var file = 'php/datasets.php'; 
    $http({ 
     method:'POST', 
     url: file, 
     params: { 
      Source: 'Blog', 
      Header: $scope.entry.Header, 
      Body: $scope.entry.Body, 
      ID: $scope.entry.ID, 
      IsLive: $scope.entry.IsLive 
     } 
    }) 
    .success(function(data, status, headers, config) { 
      //return record 
      $scope._rows = data; 
     } 
    }) 
    .error(function(data, status, headers, config) { 
     //return error message 
     $scope._error = data; 
    }); 
}; 

return f; 
}]); 
0

您可以用另一種方式編寫$ http.post方法。

$http.post(URL{Source:'Blog',Header:entry.Header,Body:entry.Body,ID:entry.ID,IsLiv:entry.IsLive}) 
.success(function (data, status, headers) { 
    console.log(data) 
}).error(function (data, status, headers) {   
}); 

如果你沒有設置什麼特別的事在POST方法,可以將其以這種方式寫。 我甚至建議你記錄數據響應參數。 我不知道你在網絡上使用http方法有多少經驗,所以最後我建議你打開瀏覽器的web開發者控制檯(我更喜歡使用mozilla),並在網絡中查看使用此方法面板發送參數。我希望這可能是一個完整的解釋

0

你爲什麼使用「params」對象?這是添加到您的網址。我假設你正在發送params對象到你的服務器。也許這就是你應該做的事情?

var params = { 
    Source: 'Blog', 
    Header: entry.Header, 
    Body: entry.Body, 
    ID: entry.ID, 
    IsLive: entry.IsLive 
} 
http.post(URL, params) 
.success(function(data, status, headers,config){}) 
.error(function(data, status, headers,config){})