gpt4 book ai didi

javascript - jQuery AJAX 没有得到 PHP 的响应

转载 作者:行者123 更新时间:2023-11-28 13:15:41 24 4
gpt4 key购买 nike

当我尝试在 PHP 中发出 jQuery AJAX 请求时,我遇到了几个问题。我的简单示例有什么问题?

index.php - 加载 JS、PHP 并定义一个按钮和一个段落。

<html>
<head>
<script src='jquery-3.0.0.js'></script>
<script src='main.js'></script>
</head>
<body>
<button id="action" onClick="Send()">Send data</button>
<p id="result"></p>

<?php require('main.php'); ?>
</body>
</html>

main.js - 它包含与“onClick”事件关联的函数。

function Send(){        
$.ajax({
url: 'main.php',
type: 'POST',
data: {
input: "test",
message: "Sending..."
},
contentType: 'application/json',
success: function(data) {
alert(data);
document.getElementById("result").innerHTML = "DONE!";
}
});
}

main.php - 它监听 POST 请求,并发回 JSON。

<?php
if ($_POST){
// Make a array with the values
$vals = [
'input' => $input,
'message' => $message
];

echo json_encode($vals);
}

success 回调运行,但 alert 消息完全为空。 alert(data.input) 显示未定义

很明显,AJAX 请求没有发送回任何数据。我该如何修复它?

最佳答案

这是因为您没有将 PHP 的响应作为 JSON 发送。

echo json_encode() 上方添加以下行;

header('Content-Type: application/json');

所以你的 PHP 代码看起来像这样,

<?php
if ($_POST){
// Make a array with the values
$vals = array(
'input' => $input,
'message' => $message
);
header('Content-Type: application/json');
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
}
?>

正如 @Ismail 提到的 dataType : 'json'.AJAX 调用中添加此内容以接受来自 API 的 JSON 响应。

关于javascript - jQuery AJAX 没有得到 PHP 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38613027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com