我使用jsp作为客户端的HTML / JQuery服务器端脚本。 我正在为jsp文件做一个AJAX,一切正常。 当我试图比较jspery ajax结果中的out.print()从jsp返回的字符串时,问题就出现了。这种比较似乎永远不会成真!
似乎out.print()
在字符串前面加上了/n
。
$.post("jsp/login.jsp", { msg: $email.val() + "~" + $pass.val() }, function (result) {
if (result === "OK")
alert("Logged in");
else
alert("Invalid Credentials");
});
答案 0 :(得分:1)
out.print()似乎在字符串前面添加了一些/ n。
在这种情况下,您有两个选择。首先,您可以在使用条件中的值之前删除JS中的额外空格:
if ($.trim(result) === "OK")
alert("Logged in");
else
alert("Invalid Credentials");
或者,最好,您可以更改JSP代码以返回JSON。根据定义,这不能将无关的空格添加到其属性的值中。
答案 1 :(得分:0)
记住Java对象比较的工作原理。在java中一个字符串文字" OK"在这种情况下,它本身就是一个对象,并且它在内存中具有自己的位置。当您与另一个字符串对象进行比较时,在这种情况下,您不会像对比原始类型那样比较两个字符串的实际值,而是比较内存中的对象位置。因此,您可以使用与String相关联的类似于String的东西。
//比较返回一个int,-1表示少于,1表示大于,0表示等于
if(result.compareTo("OK") == 0){
//Do your code here
}