Javascript Uncaught SyntaxError: непредвиденная ошибка идентификатора в отладчике Chrome - PullRequest
1 голос
/ 12 октября 2011

Я адаптирую XMLHttpRequest из этого урока :

var request = new XMLHttpRequest();  
request.open('GET', 'http://www.mozilla.org/', true);  
request.onreadystatechange = function (aEvt) {  
  if (request.readyState == 4) {  
     if (request.status == 200)  
       console.log(request.responseText)  
     else  
       console.log('Error', request.statusText);  
  }  
};  
request.send(null);

Мой код:

var xhr = new XMLHttpRequest();
xhr.open("POST", "http://ting-1.appspot.com/submithandlertest", true);
xhr.onreadystatechange = function (aEvt) {
  if (xhr.readyState == 4) {
      if (xhr.status == 200) 
          console.log("request 200-OK");
          chrome.browserAction.setBadgeText ( { text: "done" } );
      else
          console.log("connection error");
          chrome.browserAction.setBadgeText ( { text: "ERR" } );
      setTimeout(function () {
      chrome.browserAction.setBadgeText( { text: "" } );
      }, 2000);
  }        
}        
xhr.send(formData);

Но отладчик Chrome выдает ошибку Uncaught SyntaxError: Unexpected identifier на else. Что я делаю неправильно? Спасибо!

1 Ответ

2 голосов
/ 12 октября 2011

Вы пропускаете закрывающий } до и открывающий { после else, а также другие в вашем операторе if-else -.

Это работает с вашим учебным кодом, потому что в операторе if-else - только одна строка. Когда есть несколько строк, вы должны правильно их заблокировать. (Я лично рекомендую делать это всегда, даже если есть только одна строка кода. На мой взгляд, это повышает удобочитаемость, и у вас не возникнет проблем, когда вы решите минимизировать свой код однажды)

Попробуйте это:

var xhr = new XMLHttpRequest();
xhr.open("POST", "http://ting-1.appspot.com/submithandlertest", true);
xhr.onreadystatechange = function (aEvt) {
  if (xhr.readyState == 4) {
      if (xhr.status == 200){
          console.log("request 200-OK");
          chrome.browserAction.setBadgeText ( { text: "done" } );
      }else{
          console.log("connection error");
          chrome.browserAction.setBadgeText ( { text: "ERR" } );
      setTimeout(function () {
      chrome.browserAction.setBadgeText( { text: "" } );
      }, 2000);
    }
  }        
};    
xhr.send(formData);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...