我不会将2个值传递给jsp页面并返回一些数据我用警报测试它并且我的值是正确的而没有$ .post()
function deleteFunction(courseId, userId) {
$.post('../controlers/doDelete.jsp', {courseId: courseId, userId: userId}, function (data) {
alert("somthing here");
});
location.reload();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span onclick="deleteFunction('<%=c.getCourse_id()%>','<%=me.getId()%>');">click me</span>
答案 0 :(得分:6)
在该位置使用location.reload();
将在返回AJAX调用之前重新加载页面。 $.post()
生成异步操作。也就是说,调用将触发服务器,并且脚本在等待返回时继续执行。
如果您希望此次调用在 页面重新加载之前返回 ,请尝试以下代码:
function deleteFunction(courseId, userId) {
$.post('../controlers/doDelete.jsp', {courseId: courseId, userId: userId}, function (data) {
alert("somthing here");
location.reload();
});
}
传递给$.post()
的函数是在 返回ajax调用后 发生的回调。通过将location.reload();
添加到回调函数,您可以完成调用,从而为您提供了对返回数据执行操作的机会(在这种情况下触发alert
)然后,完成上一个操作后,重新加载页面。
答案 1 :(得分:0)
或者,您使用$ .ajax()并将asynch : false
选项传递给它。
function deleteFunction(courseId, userId) {
$.ajax({
url: '../controlers/doDelete.jsp',
type: 'POST',
dataType: 'json',
asynch: false,
data: {
courseId: courseId,
userId: userId
}
}).done(function(data) {
alert("something here");
});
location.reload();
}
asynch : false
强制ajax同步运行,因此,脚本会停止并等待,直到ajax请求完成,而不是在后台运行ajax。