无法比较out.print()返回的字符串
Cannot compare String returned by out.print()
我使用jsp作为服务器端脚本,客户端使用HTML/JQuery。我正在对jsp文件进行AJAX操作,一切正常。当我试图将out.print()从jsp返回的字符串与jquery ajax结果中的字符串进行比较时,问题就开始了。这种比较似乎永远不会是真的!
似乎out.print()
在字符串前面加了一个/n
。
$.post("jsp/login.jsp", { msg: $email.val() + "~" + $pass.val() }, function (result) {
if (result === "OK")
alert("Logged in");
else
alert("Invalid Credentials");
});
out.print()似乎在字符串前面加了一个/n。
在这种情况下,您有两种选择。首先,在使用条件中的值之前,可以删除JS中多余的空白:
if ($.trim(result) === "OK")
alert("Logged in");
else
alert("Invalid Credentials");
或者,最好是,您可以更改JSP代码以返回JSON。根据定义,这不能在其属性的值中添加无关的空白。
记住Java对象比较是如何工作的。在java中,字符串文字"OK"本身就是一个对象,在内存中有自己的位置。当您与另一个字符串对象进行比较时,在这种情况下,您不会像比较原始类型那样比较两个字符串的实际值,而是比较对象在内存中的位置。因此,您可以使用类似compareTo的东西,它与String相关,类似这样的东西。
//Compare to返回一个int,-1表示小于,1表示大于,0表示等于
if(result.compareTo("OK") == 0){
//Do your code here
}
相关文章:
- .value返回字符串,直到我将其保存到变量
- 无法从量角器测试中元素的值返回字符串
- 如何使用match返回字符串中的字符
- document.write未返回字符串
- $.ajax 检查返回字符串是否为“错误”
- jQuery AJAX调用PHP脚本并返回字符串
- javascript中对数字数组的迭代返回字符串
- 带多维数组返回字符串的json_encode;阵列”;而不是数据
- javascript只返回字符串的一级域名
- 使用Node.js'fs.readFile()返回字符串出现的行
- Javascript返回字符串
- Asp.net WebMethod-返回字符串[]并使用JavaScript进行解析
- 返回字符串中第一个数字之前出现的所有字母
- Javascript 计算器返回字符串而不是值
- EmberJs 将函数的返回字符串添加为类名
- 跨域 AJAX 调用返回字符串 JSON,而不是 JSON 对象
- Javascript:调整base64图像的大小并以非异步方式返回字符串
- 量角器/JavaScript - 从选择下拉列表中返回字符串的函数
- 在 JavaScript 中返回字符串
- 数组 .each() 循环返回字符串而不是 jQuery 中的值