2013-01-17 183 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