我曾經能夠很好地在NodeJS中完成jQuery AJAX請求,但是當我嘗試在PHP中做同樣的事情時,我遇到了幾個問題。我在SO中找不到任何東西可以提供幫助,所以我想問一下,我的簡單示例有什麼問題?jQuery AJAX沒有得到PHP的響應
index.php
- 真的不多,只加載2個JS,1個PHP並定義一個按鈕和一個段落。
<html>
<head>
<script src='jquery-3.0.0.js'></script>
<script src='main_js.js'></script>
</head>
<body>
<button id="action" onClick="Send()">Send data</button>
<p id="result">Lorem ipsum</p>
<?php require('main_php.php'); ?>
</body>
</html>
main_js.js
- 它包含與'onClick'事件關聯的函數。
function Send(){
var data_JSON = {
input: "test",
message: "Sending..."
};
$.ajax({
url: 'main_php.php',
type: 'POST',
data: data_JSON,
contentType: 'application/json',
success: function(data){
alert(data);
document.getElementById("result").innerHTML = "DONE!";
}
});
}
main_php.php - 它偵聽POST請求,從理論上說,併發送回一個JSON與echo
。再次,從理論上...
<?php
if ($_POST){
// Make a array with the values
$vals = array(
'input' => $input,
'message' => $message
);
echo json_encode($vals, JSON_PRETTY_PRINT); // Now we want to JSON encode these values to send them to $.ajax success.
exit; // to make sure you aren't getting nothing else
}
?>
jQuery的AJAX的success
函數運行,如文本 「DONE!」出現在該段落中,但alert
消息完全是空的。 alert(data.input)
(和message
相同)顯示undefined
。
很明顯,沒有數據發送回AJAX請求。我該如何解決它?
注意:它是整個代碼,沒有其他顯示,我也儘可能縮短和簡化。
我敢肯定,這可以幫助你:http://stackoverflow.com/questions/8050709/ajax-doesnt- get-response-from-php-side?rq = 1 –
不要以爲這實際上是你的問題,但是你在兩個程序之間傳遞數據。你不需要JSON_PRETTY_PRINT – RiggsFolly
所以你看看'數據'的內容使用瀏覽器javascript調試器 – RiggsFolly