2017-08-14 196 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