Использование 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 (boolean). Это ожидаемое поведение? Я был поражен!
Анализируемый JSON - это данные: "{" result ": false}"
typeof (status) - строка в Chrome и boolean в FF.
Проблема, кажется, возникает здесь:
var result = obj.result;
status = result;
Поскольку тип данных результата в Chrome является логическим, тогда как тип данных статуса является строкой.