2013-01-17 228 views
0

我在玩Ajax,並使用下面的代碼。responseText沒有顯示任何東西

var r = new XMLHttpRequest(); 
r.open("POST", "pythonTesting.php", true); 
r.onreadystatechange = function() { 
    if (r.readyState === 4 && r.status === 200) { 
     alert("Success: " + r.responseText); 
    } 
}; 
r.send("text=yellow"); 

它是成功的,但警報並未顯示實際responseText

pythonTesting.php(不要被名字混淆)只是:

<?php 
    echo $_POST['text']; 
?> 

我期待的responseTextyellow,因爲這就是我送了它,但它不是。我並沒有真正看到問題的癥結所在。它一定是那些容易解決錯誤的人之一。

+0

您錯誤地鍵入了'responseText'幾個問題,但您的代碼塊看起來不錯。 –

+0

pythonTesting.php在firebug中的反應是什麼?空白? – greener

+0

@greener是的。 – Shawn31313

回答

1

http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

r.open("POST", "pythonTesting.php?text=yellow", true); 

xmlhttp.open("POST","ajax_test.asp",true); 
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
xmlhttp.send("fname=Henry&lname=Ford"); 
+0

謝謝,這工作。我不知道你必須爲PHP設置一個特殊的標頭,但我現在看到它在W3學校 – Shawn31313

1

由於這是一個職位,我相信你會需要設置長度:

r.setRequestHeader("Content-length", "text=yellow".length); 
+0

沒有運氣。嘗試+1(: – Shawn31313

0

通過地址發送變量然後在php中檢索變量

$text = $_REQUEST['text']; 
+0

你好,謝謝你的答案,但你可以看到那裏已經有解決問題的辦法了,這是複選標記的答案。 – Shawn31313