Javascript Php不会通过$\u POST接收变量

Javascript Php不会通过$\u POST接收变量,javascript,php,jquery,ajax,post,Javascript,Php,Jquery,Ajax,Post,Php不会通过$\u POST接收变量。我试图用ajax将一个变量传递给php页面,但php将一个变量设为NULL。告诉我,错误是什么,如何修复 jquery代码: var imgPath; $(".close_modal_clear_cover").on("click", function(e) { imgPath = $("#cover_preview").attr('src'); $.ajax({ url: "/management/ajax_scripts/

Php不会通过$\u POST接收变量。我试图用ajax将一个变量传递给php页面,但php将一个变量设为NULL。告诉我,错误是什么,如何修复

jquery代码:

var imgPath;


$(".close_modal_clear_cover").on("click", function(e) {

    imgPath = $("#cover_preview").attr('src');
    $.ajax({
    url: "/management/ajax_scripts/img_delete.php",
    type: "POST",
    data: imgPath,
    async: true,
    cache: false,
    contentType: false,
    dataType: "json",
    processData: false,
    success: function (returndata) {
            console.log(imgPath); //url of image
            console.log(returndata); // NULL
        }
    });

});
img_delete.php代码:

if (isset($_POST['imgPath'])) {
$path= $_POST['imgPath'];
unlink($path);
$response = $path; 

} else {
  $response = "false";
}

echo json_encode($response);

data:imgPath
应该是
data:{imgPath:imgPath}
并且您应该将php后端中的
$\u GET
s更改为
$\u POST
s

谢谢@Reflective的帮助。在研究了img_delete.php中的数据并在谷歌上搜索了一下之后,我找到了一个解决方案。在我看来,由于某种原因,contentType被指定为false,但有必要使用“application/x-www-form-urlencoded”;字符集=UTF-8'

这是一个愚蠢的错误,但突然有人与相同的碰撞

$(".close_modal_clear_cover").on("click", function(e) {
    // imgPath = $.session.get("imgCover");
    imgPath = JSON.stringify($("#cover_prewiew").attr('src'));
    $.ajax({
    url: "/management/ajax_scripts/img_delete.php",
    type: "POST",
    data: {imgPath: imgPath},
    async: true,
    cache: true,
    contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
    dataType: "json",
    processData: true,
    success: function (returndata) {
            console.log(imgPath);
            console.log(returndata);
        }
    });

});

认真地显然,您没有查看
$\u POST
,而是在使用
$\u GET
。你甚至不能声称自己不知道,因为你在标题中使用了
$\u POST
。我尝试了一下,试图找到原因。这个错误与此无关,实际上有$\u post。为了更多的参考,这里有一个关于这个的问题和详细的答案…“data:imgPath应该是data:{imgPath:imgPath}”-没有任何更改,“将$\u更改为php后端中的$\u post”-实际上有$\u post,我在写问题时犯了一个错误。请在您使用的浏览器中打开开发人员工具。。。通常F12会打开它。。。转到“网络”选项卡,您将看到所有网络请求。对于请求主体和头以及响应主体和头,通常有两个主要部分。查看您真正发送的内容。
!isset($\U POST['imgPath'])
应该是
isset($\U POST['imgPath'])
。。。你应该对你写的东西非常严格。。。到现在为止我犯了太多的错误,我同意,也许我不是很专心。但从这一点来看,问题的本质并没有改变。和以前一样,php不接收变量。您看到开发者工具中的网络选项卡中发生的情况了吗?如果您想向任何后端编写回调,这个选项卡应该是您最好的朋友!