【发布时间】:2016-03-31 01:49:10
【问题描述】:
我有以下 ajax javascript。
我的js:
function updateCart() {
var numRooms = $("input[name='rooms']").val();
$.post("../ShoppingCart", {
rooms: numRooms
});
checkCart();
}
function checkCart() {
$.get("../CartSize", function(resp) {
$('#cart').text(resp);
});
}
我的html:
<button name="carryOn" onclick="updateCart()">Add to cart</button>
当单击具有 onclick="updateCart()" 属性的按钮时,servlet 接收到请求,但响应为空白。如果我从 javascript 控制台调用 updateCart() 函数,我会收到内容响应。为什么? Servlet 只是使用来自 HttpSession 会话的 PrintWriter 响应来写入文本。
我也试过
function updateCart() {
var numRooms = $( "input[name='rooms']").val();
$.post( "../ShoppingCart", {
rooms: numRooms
}, function() {
checkCart();
});
}
【问题讨论】:
-
你能告诉我们按钮的 html 吗?您是否确定在单击元素时甚至会调用该函数?顺便说一句,我建议使用像
$('#some-button').click(updateCart());这样的事件处理程序而不是onclick但这不是实际问题 -
-
是的,我确定。我已经在 servlet 中包含了 println 语句,并且到达并调用了 servlet。从按钮单击调用时,响应只是空的。如果从 Firefox 中的 javascript 控制台调用,则响应符合预期。
-
.fail(function() { alert( "error" ); }) 你能试着把这个添加到你的函数中看看是否有任何错误
-
你可以试试这个语法:
$.ajax({ type: "POST", url: '../ShoppingCart', data: {rooms: numRooms}, success: function() {}, error: function(xhr, status, error) { console.log(xhr); console.log(status); console.log(error); } });,如果有控制台日志,请告诉我们,值是什么?