为什么两个相同的字符串在js中不相等

时间:2015-07-20 02:24:12

标签: javascript ajax

我在javascript中使用AJAX时会遇到这个问题。

function showUsernameStatus() {
	if (usernameRequest.readyState == 4) {
		if (usernameRequest.status == 200) {
			console.log(typeof(usernameRequest.responseText));
			console.log(usernameRequest.responseText);
			if (usernameRequest.responseText == 'ok') {
				console.log(111);
				document.getElementById('username').className = 'approved';
				usernameValid = true;
			}else{
				console.log(222);
				document.getElementById('username').className = 'denied';
				document.getElementById('username').focus();
				document.getElementById('username').select();
				usernameValid = false;
			}
		}
		checkFormStatus();
	}
}
在Chrome控制台板上显示: 串 行 222依次;

usernameRequest.responseText的值是ok,类型是字符串,但它不等于字符串'ok'。请告诉我原因,非常感谢!!!

1 个答案:

答案 0 :(得分:0)

根据OP的评论,响应文本实际上是 Song_APIAdapter adapter = new Song_APIAdapter(getApplicationContext(), pcAPI); lvAPI.setAdapter(adapter); Song_APIAdapter adapter2 = new Song_APIAdapter(getApplicationContext(), artistAPI); adapter.addAdapter(adapter2); ,其在响应开始时包含BOM(字节顺序标记)字符。

为了删除BOM,要么修剪JS端的文本,要么删除PHP文件中的BOM。

参考:Byte Order Mark