javascript - AJAX 请求无法被 PHP 脚本识别为 POST
问题描述
我正在尝试将表单发布到 PHP 脚本,它在将请求验证为 POST 请求时卡住了,因此它从 PHP 脚本中退出。AJAX 请求返回成功,但从数据库返回的数据显示请求识别为 POST 失败。我尝试更改内容类型等,但无济于事。
JS:
$(document).ready(function() {
$("#delete4").on('click', function(e) {
e.preventDefault();
var ok = confirm('Are you sure you want to delete this?');
if (ok == true)
{
console.log("true")
var data = $("#form4").serialize();
$.ajax({
data: data,
type: "post",
url: "delete_AJAX.php",
success: function(data) {
console.log("successfully deleted");
console.log(data);
//$("#div4").remove();
},
error: function(data) {
alert("fail");
console.log(data);
}
});
} else {
return;
}
});
});
HTML:
<form type="text" name="form4" id="form4" action="delete_AJAX.php" method="post">
<div class="aligner">
<button type="button" class="button_div" name="edit" onclick="send(52)">Edit</button>
<button type="button" class="button_div" id="delete4">Delete</button>
<button type="button" class="button_div" name="read" onclick="send2(52, 13)">See</button>
</div><br>
<input type="hidden" id="hidden_c4" value="13" name="hidden_c">
<input type="hidden" id="hidden_bid4" name="hidden_bid" value="52">
</form>
PHP:
require_once("db.php");
if ($_REQUEST['REQUEST_METHOD'] === 'POST')
{
$bid = $_POST['hidden_bid'];
echo "passed request";
$sql = "SELECT * FROM xxx WHERE yyy = $bid";
$result = mysqli_query($connection, $sql);
if ($result === false)
{
die("f1");
}
$resultCheck = mysqli_num_rows($result);
if (!resultCheck > 0)
{
echo "ERROR NO RESULT";
exit();
};
$row = mysqli_fetch_assoc($result);
$delete_cover = $row['cover'];
unlink($delete_cover);
// updating table row
$sql2 = "DELETE FROM xxx WHERE (yyy=?);";
$stmt = mysqli_stmt_init($connection);
if (!mysqli_stmt_prepare($stmt, $sql2))
{
header("Location: ../create.php?error&prepare1111");
exit();
}
else
{
$stmt->bind_param("i", $bid);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
$connection->close();
echo "successfully deleted";
}
} else {
echo "FAILURE TO REQUEST";
}
所以我一直在失败“请求失败”,当我删除脚本的任何障碍时,帖子显示为空,并且变量没有设置。因此它在“f1”错误处停止。任何帮助都会很棒!谢谢!
解决方案
您似乎为“REQUEST_METHOD”使用了错误的全局变量。而不是$_REQUEST['REQUEST_METHOD']
使用$_SERVER['REQUEST_METHOD']
推荐阅读
- ios - Taptic Engine 平滑反馈
- ffmpeg - FFMPEG DASH - 实时流式传输 MP3 剪辑序列
- xquery - XQuery 根据不同的值获取数据
- javascript - Javascript:打印 JSON 树中的所有路径,包括数组
- java - 嵌套for循环后卡住java空间
- python - 如何访问 Python 字符串中的第一个字符和整数对?
- python - 如何将html表单/文件名的名称传递给python - CGI/HTML/Python
- python-3.x - 在 Windows 命令行上使用 PyInstaller 时文件夹的 ModuleNotFoundError
- twitter-bootstrap - 如何划分页面以创建小部件?
- python - Selenium WebDriverException 与无头镀铬