2015-08-28 44 views
0

我是AJAX新手,目前正在從Head First AJAX瞭解它。我面臨的問題非常奇怪。我開發了一個簡單的程序,通過JavaScript創建請求,然後顯示輸出。request.responseText收到正確的數據,但JavaScript無法理解

main.js

window.onload = initPage; 
function initPage() { 
    request = createRequest(); 
    if(request == null) { 
     alert("request could not be created"); 
    } 
    else { 
     var url = "requestMe.php"; 
     request.onreadystatechange = showResult; 
     request.open("GET", url, true); 
     request.send(null); 
    } 
} 

function showResult() { 
    if(request.readyState == 4) { 
     if(request.status == 200) { 
      if(request.responseText == "okay") { 
       alert("A successful request was returned"); 
      } 
      else { 
       alert("ALERT : " + request.responseText); 
      } 
     } 
     else { 
      alert("Request status received was not correct"); 
     } 
    } 
} 

//--function to create request objects-- 
function createRequest(){ 
    try{ 
     request = new XMLHttpRequest(); 
    } 
    catch(tryMS){ 
     try{ 
      request = new ActiveXObject("Msxm12.XMLHTTP"); 
     } 
     catch(otherMS){ 
      try{ 
       request = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch(failed){ 
       request = null; 
      } 
     } 
    } 
    return request; 
} 

現在,這裏是PHP腳本。

requestMe.php

<?php 
    echo 'okay'; 
?> 

此代碼應給予警告A successful request was returned

反而它給出結果ALERT : okay

奇怪的是相同的代碼是工作昨天對我來說,當我嘗試它,現在它給了我這個結果。我試圖創建類似的程序,他們都向我展示了這種奇怪的行爲。收到的responseText是正確的,因爲它附加okayALERT :。我在代碼中做了什麼錯誤?當responseText收到的信息是正確的時,爲什麼它會進入else部分?

任何幫助?提前致謝。

回答

0

做一件事添加退出;echo'okay';在你的代碼

問題後?>有多餘的可用空間,你可以通過刪除?>或之後?>,除去多餘的空間,解決它。

我希望它能解決您的問題。

+0

Exaclty!它對我來說也很好。但它突然間全部崩潰了。我在Ubuntu 15.04上使用Aptana Studio,並使用FireFox瀏覽器。 –

+0

請在requestMe.php裏面分享你的代碼。 –

+0

我查了一下,然後再檢查一下。迴音 –

0

我個人也以下列方式使用jQuery's Ajax Function做到:

document.addEventListener("DOMContentLoaded", function() 
 
{ 
 
    $.ajax({ 
 
    "url": "requestMe.php" 
 
    }).done(function(data) 
 
    { 
 
    if(data == "okay") 
 
    { 
 
     alert("A successful request was returned"); 
 
    } else 
 
    { 
 
     alert("ALERT : " + data); 
 
    } 
 
    }).fail(function() 
 
    { 
 
    alert("Connection Failed"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

我沒有測試過這個劇本,但它應該在理論工作搞好。