2013-05-01 90 views
1

我已經看過大量的演示和AJAX和JavaScript教程,但我似乎無法讓這件事情正常工作。下面是我得到了什麼?使用javascript和AJAX實現一個吼吼箱

function createRequestObject() { 
var ro = false; 
if (window.XMLHttpRequest) {    // Mozilla, Safari, ...    
    ro = new XMLHttpRequest(); 
} else if (window.ActiveXObject) {  // IE        
    try { 
     ro = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) { 
     try { 
      ro = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (e) { } 
    } 
} 
return ro; 
} 


function ajaxrequest(){ 
var http = createRequestObject(); 
if(http) { 
    var name = "Strassburg"; 
    var message = "Strike three you're out"; 
    http.open('post', '/server/shout.php'); 
    // needed in order for most servers to see POST data      
    http.setRequestHeader('Content-Type', 
          'application/x-www-form-urlencoded'); 
    http.onreadystatechange = function() { 
     if(http.readyState == 4){ 
      if(http.responseText.indexOf(':' != -1)) { 
       var data = http.responseText.split(':') 
       alert(data) 
      } 
     } 
    }; 
    http.send('name=' + name + '&message=' + message); 
} 

}

現在我與靜態文本做(姓名和消息,而不是使用用戶輸入的字段),但我只是得到一個空警報。如果readyState設置爲4,這意味着我相信ajax調用成功了嗎? server/shout.php給了我,我不明白php,但如果需要一個snippit,我可以把它放在這裏。

回答

1

其此行 http.responseText.indexOf( ':'!= -1)

( 「:」!= - 1)= true,這樣的indexOf在responseText的

尋找真

試試這個 http.responseText.indexOf( ':')!== -1

+0

這是真的,並確認responsetext是空的......但爲什麼? – SetSlapShot 2013-05-01 19:32:54

1

的readyState == 4表示請求完成,檢查它是否是OK檢查http.status == 200

if (http.readyState == 4) { 
if(http.status == 200) { 
    alert(http.responseText); 
} 
} 

P.S.這應該是一個評論,但我沒有足夠的評級來評論你的帖子

相關問題