2017-08-14 194 views
0

我發送POST請求與$httpangularjs HTTP POST請求壞400

$http({ 
    method: 'Post', 
    url: urlBuilt,   
    headers: {'Content-Type': 'application/json'},               
    params: {"colCode":modCodeCol,"whereClause":clause} 
}); 

當where子句是非常巨大的,我越來越壞請求400 error。當where子句包含一個小字符串時,它可以工作。我們如何解決這個問題。

+0

coud大家分享數據'whereClause'的例子? ? –

回答

1

嘗試改變PARAMS在HTTP的這樣的塊數據

$http({ 
    method: 'POST', 
    url: urlBuilt,   
    headers: {'Content-Type': 'application/json'},               
    data:{"colCode":modCodeCol,"whereClause":clause} 
}); 

PARAMS如果queryParams這意味着它的URL發送。 數據追加到請求主體。

+0

@Carrasco,我使用了數據,在我的spring控制器中,我已經將requestParam更改爲requestBody,如下所示,客戶端發送的請求在語法上不正確 – user700

0

爲POST請求您需要發送的數據爲JSON也最好是得到一個承諾,解決其發送這樣的請求後:

var data = { 
       "colCode":modCodeCol, 
       "whereClause":clause 
      } 
    $http({ url: urlBuilt , method: 'POST', data: data }) 
     .then(function (result) { 
      deferred.resolve({ data: result.data.Data, count: result.data.Count }); 

     }); 
+0

我只想知道爲什麼需要在這裏使用$ q?你可以使用簡短的http語法。 '$ http.post(urlBuld,data).then(...)' – Akashii

+0

沒有人在這裏使用$ q!當你想要批量請求時使用$ q –

+0

'deferred.resolve'? – Akashii