使用jQuery 1.9.1,回调服务器检查一些数据:
$form = $("#form2")
var str = $form.serialize();
status = true;
$.ajax({
type : 'POST',
url : 'check_zip.php',
data : str,
async : false,
success : function (data) {
obj = JSON.parse(data);
var result = obj.result;
status = result;
},
error : function (msg) {
alert(msg);
status = false;
}
});
if (status == "false" || status === false) {
....
我发现 Chrome 会返回状态“false”(字符串),而 Firefox 会返回状态 false(布尔值)。这是预期的行为吗?我很惊讶!
被解析的 JSON 是 data: "{"result":false}"
typeof(status) 在 Chrome 中是字符串,在 FF 中是布尔值。
问题似乎出现在这里:
var result = obj.result;
status = result;
因为Chrome中result的数据类型是boolean,而status的数据类型是string。