ajaxt weird error: Uncaught SyntaxError: Unexpected token if

ajaxt weird error: Uncaught SyntaxError: Unexpected token if

本文关键字:Unexpected token if SyntaxError Uncaught weird error ajaxt      更新时间:2023-09-26

我有这个javascript:

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);
}  

但是我一直得到一个Uncaught SyntaxError: Unexpected token if错误,它停止了我的脚本。什么好主意吗?

您丢失了一堆大括号,并且在update_select()行上,这导致了一个问题。对于大多数这些块来说,大括号并不是严格要求的,但是因为您试图在第一个if()中执行两条语句,所以您将需要它们。最好把它们放在任何地方。

function updatePage() {   
  if (request.readyState == 4) {
    if (request.status == 200) {
        var data = JSON.parse(request.responseText);
        // Second statement executed after the if() 
        // MUST use {} on this block
        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);
    }
  }
}
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);
}

您缩进了第5行(update_select...),但它实际上不在if中。

您在第2行和第3行缺少大括号{:

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);
    }
}