ajax循环意外地进入else块

时间:2011-12-29 14:57:23

标签: ajax if-statement

嗨,我有这个ajax脚本:

function updatePage() {   
if (request.readyState == 4) {   
    if (request.status == 200)
        // get response array
        var data = JSON.parse(request.responseText); 
        update_select($('select[name=island_name]'), data);
    }
    else if (request.status == 404) {
        alert("Request url does not exist");
    }
    else {
        alert("Error: status code is " + request.status);
    }
}  

脚本执行正常,但是当它执行时,我收到“错误:状态代码为200”的警报。当状态为200时,为什么脚本会进入此块?我该怎么做才能防止这种情况发生?

1 个答案:

答案 0 :(得分:1)

if (request.status == 200)条件没有{ 因此,它的效果只有一行,而else的链适用于外if

如果您正确缩进,您的代码如下所示:

function updatePage() {
    if (request.readyState == 4) {
        if (request.status == 200) 
            var data = JSON.parse(request.responseText);
        update_select($('select[name=island_name]'), data);
    } else if (request.status == 404) {
        alert("Request url does not exist");
    } else {
        alert("Error: status code is " + request.status);
    }
}