这是我的帖子请求。它用于将用户的数据发送到后端 php 页面。我做了一些调试并且
const fullusername = "<?php echo $to; ?>";
const personontheline = sessionStorage.getItem('name');
fetch('inc/AI2.php', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: new URLSearchParams({
fullname: fullusername, //variable
personwhoclicked: personontheline //variable
}) //continues to fetch errors
这是后端。它表明由于某种原因
$_SERVER['REQUEST_METHOD']
是一个 GET 请求。我不太擅长 php 或 javascript。由于某种原因它根本不起作用,我花了几个小时试图解决它。这可能是一些愚蠢的事情,哈哈。
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
//do stuff
}
} else {
// Handle invalid requests
echo "Invalid request ".$_SERVER['REQUEST_METHOD'];
die();
}
我尝试将获取方法切换为 GET 方法,但这稍微修复了代码,因为我的代码无法识别 GET 方法的变量
if (isset($_GET['fullname']) AND isset($_GET['personwhoclicked'])) { //work }
else{ echo "error"; }
这就是 burp 套件在发布请求时的样子
这就是 burp 套件通过 GET 请求实现的效果
我怀疑问题可能是自动重定向将 POST 请求转换为 GET。将重定向:“手动”添加到您的获取选项可能会阻止这种情况并让您直接深入了解响应。
下面是带有重定向选项的更新代码:
fetch('inc/AI2.php', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: new URLSearchParams({
fullname: fullusername,
personwhoclicked: personontheline
}),
redirect: 'manual' // Prevents automatic redirects
}).then(response => {
console.log(response); // Check the status and headers for redirect info
}).catch(error => console.error(error));