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 はデータです: "{"result":false}"
typeof(status) は、Chrome では文字列、FF ではブール値です。
問題はここで発生するようです:
var result = obj.result;
status = result;
Chrome の結果のデータ型はブール値であるのに対し、ステータスのデータ型は文字列であるためです。