如何基于jquery-ajax响应在同一窗口中打开新页面

这可能很容易,但我在做这件事时遇到了麻烦。 如何使用jquery-ajax响应在同一窗口中打开新页面?

正如您所看到的,如果php响应等于单词“invalid”,我会尝试显示自定义文本。 如果没有在同一个窗口中打开一个新的html页面。

$("#lBtn").click(function(){ $.post("php/session.php", { username:$("#username").val(), password:$("#password").val() }, function(response) { alert(response) if(response == "invalid"){ $("#loginResponse").text("Error!!"); } else { window.location = $(this).find('new/pahe.html').html(); } }); }); 

警报(响应)显示“无效”一词,但if语句不起作用。 意味着它既不显示Error!!$("#loginResponse")也不会打开新页面。 这就是我想解决的问题。

您可能会在post的输出中返回额外的空格(可能是回车或空格?)。

修剪回复:

 function(response) { response = $.trim(response); if(response == "invalid"){ 

或者只是这样做以检查子字符串匹配:

 function(response) { if(response.indexOf("invalid")>=0){ 

编辑 :你没有说出你的问题。 您的目标是重定向到另一个页面。

如果#lBtn的html是url本身,那么解决方法是使用:

 window.location.href = $(this).html(); 

这是用于在新选项卡中打开链接

首先创建一个隐藏在某处的新链接:

Javascript代码

 $('body').append(''); 

然后在其上触发click事件:

Javascript代码

 $('#new_wnd_temp').trigger('click').remove(); 

在您的示例中,它看起来像这样:

Javascript代码

 $("#lBtn").click(function() { $.post("php/session.php", { username:$("#username").val(), password:$("#password").val() }, function(response) { alert(response); if(response == "invalid") { $("#loginResponse").text("Error!!"); } else { $('body').append(''); setTimeout(function () { $('#new_wnd_temp').trigger('click').remove(); }, 0); } }); });