Javascript 为什么可以';我是否可以通过jQuery修改此post请求的响应?
因此,我有一个登录表单,提交后将重定向到主页Javascript 为什么可以';我是否可以通过jQuery修改此post请求的响应?,javascript,html,jquery,Javascript,Html,Jquery,因此,我有一个登录表单,提交后将重定向到主页/ 我希望表单具有相同的行为,但当我从服务器收到以HTML数据形式返回的响应时,我可以修改该HTML数据,以便在重定向发生后,主页将显示修改后的HTML: $(#login-form).submit(function(event) { event.preventDefault(); var $form = $(this); var user = $("#username").val(); var passwd = $
/
我希望表单具有相同的行为,但当我从服务器收到以HTML数据形式返回的响应时,我可以修改该HTML数据,以便在重定向发生后,主页将显示修改后的HTML:
$(#login-form).submit(function(event) {
event.preventDefault();
var $form = $(this);
var user = $("#username").val();
var passwd = $("#password").val();
var url = $form.attr("action");
var posting = $.post(url, { username: user, password: passwd });
posting.done(function(data) {
$(data).find("#logged-user").text("user777");
$('html').html(data);
});
});
在上面的代码片段中,当sayuser111
登录时,会有一个span标记
,显示登录用户的名称
但是,当我试图操纵这个span标记时,它会通过$(data.find(#logged user”).text(“user777”)代码>它不工作。为什么?试试这个:
posting.done(功能(数据){
var tmp=$(''+数据+'');//创建一个临时DOM
tmp.find(“#logged user”).text(“user777”);//修改它
$('html').html(tmp.html());//获取它的html并使用它
});
或者简单地说:
posting.done(功能(数据){
$('html').html(数据);
$(“#登录用户”).text(“用户777”);
});
您不是在修改数据,而是从数据中创建DOM,对其进行修改,然后什么也不做。您需要将其附加到页面中的某个位置:因此,我通过$('HTML').HTML(数据)呈现HTML响应,而不是window.location.replace(“./”)
)代码>。然而,问题仍然存在——登录时仍然显示user111
。“修改HTML数据,以便在重定向发生后,主页将显示修改后的HTML”-重定向意味着加载新页面,意味着您在当前页面中使用JavaScript所做的一切都将在那时消失。您必须将修改后的HTML存储在某个位置,以便您可以在重定向到的文档中阅读它。非常好用,谢谢!