控制器中的相关部分:
@RequestMapping(value= "/makeTransfer", method = RequestMethod.POST)
public @ResponseBody String makeTransfer(Map<String, Object> model, @RequestParam int id, @RequestParam int sum, @RequestParam int ownerAccount, @RequestParam int ownerBalance, @RequestParam int receiverAccount){ ...}
Ajax调用(我正在尝试使所有内容都为Integer)
function transfer(obj, idd, ownerAcc, ownerbal){
var receiverAccount = parseInt($(obj).parent().find('#recAcc_field').val());
var sum = parseInt($(obj).parent().find('#sum_field').val());
var updatedSum = ownerbalance - sum;
var id = parseInt(idd);
var ownerAccount = parseInt(ownerAcc);
var ownerbalance = parseInt(ownerbal);
alert(ownerbalance);
$.ajax({
type : "POST",
url : "makeTransfer.html",
data: ({id : id, sum : sum, ownerAccount : ownerAccount, ownerbalance : ownerbalance, receiverAccount : receiverAccount}),
success : function(data) {
if (data=="success") {$(obj).closest('tr').find('#accBalance').val(updatedSum)}
else {alert("error!!")}
}
})
}
在我的JSP中,我使用onclick调用该函数:
Receiving Account: <input id="recAcc_field" type="text">
Sum: <input id = "sum_field" type="text" onblur="checkTransfer(this,${account.balance})">
<input id="transferButton" disabled type="submit" value="Transfer" onclick='transfer(this, ${personna.id}, ${account.accountId}, ${account.balance})'>
我还对控制器进行了其他Ajax调用,并且一切正常,在我看来,此代码与之前编写的代码非常相似,因此效果非常好。我的javascript函数的每个参数都应为Integer,但无论如何我都会“ parseInt”它们。.val()返回什么?整数还是字符串?(我知道JavaScript与Java不同,只是想知道)。我收到的错误是:Failed to load resource: the server responded with a status of 400 (Bad Request)
如果您需要其他信息,请告诉我:)
您应该查看Chrome Developer工具,以便可以看到确切的POST请求,但是乍一看,情况似乎与您的参数不匹配:
@RequestParam int ownerBalance
与
data: ({id : id, sum : sum, ownerAccount : ownerAccount, ownerbalance : ownerbalance, receiverAccount : receiverAccount}),
enter code here
根据您的要求。您也可以将所有RequestParam
临时标记为不需要,以查看是否有帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句