2013-10-08 100 views
0

只是想做一個非常簡單的AJAX,但沒有。謝謝! http://localhost/userupdate.php -爲什麼這個非常簡單的AJAX腳本不工作

<script> 
function update() 
{ 

if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    var str='test'; 

xmlhttp.open("GET","localhost/userupdate.php?q="+str,true); 
xmlhttp.send(); 
} 
</script> 

和PHP頁面本地主機/ userupdate.php(WAMP)所有的

<?php 
$q=$_GET["q"]; 
echo $q; 
?> 
+4

您應該在您的'xmlhttp.open'中使用'http:// localhost' – JTC

+1

您希望發生什麼?你對onreadystatechange什麼都不做。更正網址後,您只需調用服務器即可。 – epascarello

+1

你想要它做什麼?你必須告訴我們它應該做什麼,然後我們才能告訴你爲什麼它不是。 –

回答

4

首先,你應該在你的xmlhttp.open使用完整的URL。如果userupdate.php文件與此腳本位於同一目錄中,則可以簡單地使用userupdate.php

其次,你沒有做任何響應。由於響應是一個字符串,因此可以使用responseText屬性來檢索它。

function update() { 

    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } else { // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      console.log(xmlhttp.responseText); 
     } 
    } 

    var str = 'test'; 

    xmlhttp.open("GET", "http://localhost/userupdate.php?q=" + str, true); 
    xmlhttp.send(); 
} 
+0

原始問題中的代碼可能會執行對服務器的ajax調用,並返回數據 - 此答案中指出的問題以及上述許多評論意見是,從服務器返回的數據不是被'處理'。此答案將事件響應封裝到OnReadyStateChange方法中,該方法將輸出控制檯中從服務器返回的任何內容。 我個人的做法是經常將一個「容器」傳遞給我的ajax回調方法,然後用服務器返回的任何內容替換上述「容器」中的任何內容。 – DigitalJedi805

+0

我嘗試了所有上述內容以包含http://localhost/userupdate.php,http://127.0.0.1/userupdate.php,localhost/userupdate.php和/userupdate.php。另外,粘貼上面的代碼。依然沒有。也許WAMP的問題? – Medeno

+0

@ user2734634:你是怎麼調用這個函數的?在頁面底部添加一個''並檢查您的瀏覽器控制檯。 –

相關問題