我试图通过 $http.post 将 json 数组保存到后端服务,但我总是收到 400 Bad Request
。我用谷歌搜索了一下,但没有找到明确的答案。
我的问题如下:
1. 是否可以通过$http.post发布json数组?
2. 如果是,怎么做?
3. 如果没有,还有什么其他替代方法来保存 json 数组以达到这样的目的?
为了使这一点更加清晰,我将在下面添加一些必要的代码。
在前端
储蓄服务
createBatchSavings: function(savingsBatch){
return $http.post('/finance/savings/create/batchsavings', savingsBatch).success(function(data){
return data;
});
}
上述函数正确获取其 savingBatch 参数。 savingBatch 是 json 数组。
在后端
保存服务Impl
@Component
@Path("/savings")
@Produces("application/json")
public class SavingsServiceImpl implements SavingsService {
@Autowired
FinanceEntityDao financeDao;
@POST
@Path("/create")
public FinanceEntity createSaving(FinanceEntity financeEntity) {
financeEntity.setType(FinanceType.SAVING);
financeEntity.setDateAdded(new Date());
return financeDao.save(financeEntity);
}
@POST
@Path("/create/batchsavings")
public List<FinanceEntity> createBatchSavings(List<FinanceEntity> savingsBatch) {
if(savingsBatch.size() > 0){
return financeDao.massSave(savingsBatch);
}
else {
throw new NullPointerException("Saving batch was null!");
}
}
}
我还检查了 header 值。请求 header 具有正确的值,但响应 header 内容长度始终为零。
最佳答案
是的,绝对可以发布数组数据,并且您在客户端编写的用于发布数据的代码是正确的。
您收到的状态代码 400
一定是由于服务器端代码出现问题造成的。我在服务器端代码中看到一个方法 createBatchSavings,但客户端的 URL 是小写的,batch savings。
这只是一个提示。您需要添加有关服务器端代码的更多信息。
关于javascript - 是否可以使用 $http.post 发布数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27731711/