就像这篇文章的标题所说,我通过 jQuery 的 AJAX 方法发送 POST 请求。然而,它运行的 PHP 代码确实运行了。 PHP 代码中的所有内容都按其应有的方式工作。唯一的问题是它没有返回成功来运行 success
函数。
客户端 JS 代码:
<script>
function commandUpdate(command, action, element) {
$.ajax({
type: "POST",
url: "update/commands.php",
data: {id: window.location.href.split("?id=").slice(1).join("?id="), type: "NA", command: command, action: action, value: document.getElementById(command + "Text").value},
success: function() {
document.getElementById(element).innerHTML = "🗸"
location.reload()
}
})
}
</script>
服务器端 PHP 代码:
<?php
$connection = mysqli_connect("myIP", "user", "pass", "dbName");
$loginID = $_POST["id"];
$type = $_POST["type"];
$value -> command = str_replace("\"", "\\\"", $_POST["command"]);
$value -> action = str_replace("\"", "\\\"", $_POST["action"]);
$value -> value = str_replace("\"", "\\\"", $_POST["value"]);
$value = json_encode($value);
mysqli_query($connection, "INSERT IGNORE INTO requests (loginID, category, type, value) VALUES ('$loginID', 'commands', '$type', '$value')");
mysqli_close($connection);
?>
所有这些都有效,除了控制台有 500 Internal Server Error
和 success: function() {//code}
部分。 t 正在被执行。我在这里缺少什么吗?
最佳答案
500
代码表示服务器端某些内容无法正常工作。我遇到过类似的情况,与我自己的服务器不同的服务器也出现了这个问题,即使它本身提供了所有信息并且似乎运行良好。
我无法解决 500 错误,因此最终只是在调用上放置一个always() 监听器,并调节 200 和 500 代码以及预期的数据结构。
因为您没有将调用存储在 var 中。你可以这样做:
function commandUpdate(command, action, element) {
$.ajax({
type: "POST",
url: "update/commands.php",
data: {id: window.location.href.split("?id=").slice(1).join("?id="), type: "NA", command: command, action: action, value: document.getElementById(command + "Text").value},
success: function() {
document.getElementById(element).innerHTML = "🗸"
location.reload()
}
statusCode: {
200: function(){
document.getElementById(element).innerHTML = "🗸"
location.reload()
}
500: function(){
document.getElementById(element).innerHTML = "🗸"
location.reload()
}
}
})
}
或链接它:
$.ajax({
/*options*/
}).always(function(data){
if(data.statusCode === 200 || data.stausCode === 500){
/*Do things with data*/
}
});
关于javascript - jQuery - AJAX POST 请求给出 500 内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48601063/