2015-11-01 90 views
0

我只是在我的瀏覽器中進行一些測試以確定發生了什麼 - 一切似乎都正常工作,直到此行爲止:爲什麼我的瀏覽器在這裏說「uncaught referenceerror」?

responseJson = JSON.parse(localReq.responseText);

當我評估這部分:JSON.parse(localReq.responseText);我得到適當的價值。但是當我評估「responseJson」時,它給了我一個未捕獲的引用錯誤,我不知道爲什麼。

function login() 
{ 
    userName = document.getElementById("_name").value; 
    password = document.getElementById("_password").value; 
    data = "userName=" + userName + "&" + "password=" + password; 
    localReq = new XMLHttpRequest(); 

    localReq.open("POST", "http://universe.tc.uvu.edu/cs2550/assignments/PasswordCheck/check.php", true); 
    localReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    localReq.send(data); 
    response = document.getElementById("_login"); 

    if (localReq.status == 200) 
    { 
     responseJson = JSON.parse(localReq.responseText); 
    } 



} 
+0

@torazaburo我已嘗試..約100種不同的方式..你可以更具體一點嗎?每個其他變量工作正常。 – user5407906

回答

1

您需要在您的AJAX請求上使用事件偵聽器來通過回調異步處理來自服務器的響應。如果不這樣做,則在服務器響應之前檢查響應代碼200

function login(){ 
    userName = "username"; 
    password = "password"; 
    data = "userName=" + userName + "&" + "password=" + password; 
    localReq = new XMLHttpRequest(); 

    // use an event handler here 
    localReq.addEventListener("load", function(evt){ 
     if (localReq.status == 200) { 
      responseJson = JSON.parse(localReq.responseText); 
      alert("Success: " + localReq.responseText); 
     } else { 
      alert("Not Success!= :("); 
      console.log(localReq); 
     } 
    }); 

    localReq.open("POST", "http://universe.tc.uvu.edu/cs2550/assignments/PasswordCheck/check.php", true); 
    localReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    localReq.send(data); 
} 

看到這個的jsfiddle:http://jsfiddle.net/wwsj3r4q/

+0

謝謝!顯然這是我第一次。 – user5407906

+0

不用擔心。這裏是使用XmlHttpRequest的很好的指導:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest – doublesharp

相關問題