我有以下代码:
$.ajax({
type: 'GET',
url: 'edit_slides.php',
data: { user_id: user_id },
success: function() {
location.reload();
$('#messageContent').append('<p>success</p>');
}
});
现在发生的事情是它会附加然后快速重新加载,因此它会丢失信息。
现在,我可以取出重新加载,它会附加但是为了让我的更改生效,页面需要重新加载。
还有什么我可以做的吗?我想在重新加载页面后显示成功消息。
谢谢!
答案 0 :(得分:5)
location.reload()
将重新加载您的页面,这会向您的服务器创建一个新请求,然后浏览器会加载响应。您可以在消息的查询字符串中添加一个参数,例如
$.ajax({
type: 'GET',
url: 'edit_slides.php',
data: { user_id: user_id },
success: function() {
window.location = "?message=success";
}
});
然后在服务器端代码中,如果参数存在,则可以显示消息。在ASP.NET MVC中,它看起来像这样:
@if(Request["message"] == "success")
{
<p>success</p>
}
如果您没有可用的服务器端脚本,您还可以parse the querystring with javascript。
答案 1 :(得分:1)
重新加载页面之前,您可能会有一些延迟。试试这个
$.ajax({
type: 'GET',
url: 'edit_slides.php',
data: { user_id: user_id },
success: function() {
$('#messageContent').append('<p>success</p>');
setTimeout(function(){
location.reload();
}, 500);
}
});
答案 2 :(得分:1)
将其发送到某个位置但在网址中使用哈希表示成功:
$.ajax({
type: 'GET',
url: 'edit_slides.php',
data: { user_id: user_id },
success: function() {
window.location = window.location + "#success";
}
});
现在加载页面时,请检查哈希:
$(document).ready(function(){
if(window.location.hash) {
$("#messageContent").append("<p>success</p>");
}