【问题标题】:Php does not receive a variable through $ _POSTphp没有通过$_POST接收变量
【发布时间】:2018-06-08 22:16:45
【问题描述】:

Php 没有通过 $_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);

【问题讨论】:

  • 认真的吗?您显然没有查看 $_POST 并且正在使用 $_GET。你甚至不能声称你不知道,因为你在标题中使用了$_POST
  • 我进行了实验,试图找到原因。与此无关的错误,实际上有$ _post。
  • 更多参考,这里有一个问题和详细答案...stackoverflow.com/questions/5004233/…

标签: javascript php jquery ajax post


【解决方案1】:

data: imgPath 应该是 data: {imgPath: imgPath} 并且您应该在 php 后端将您的 $_GETs 更改为 $_POSTs

【讨论】:

  • "data: imgPath 应该是 data: {imgPath: imgPath}" - 没有任何改变,并且“在 php 后端将你的 $_GETs 更改为 $_POSTs” - 实际上有 $_post,我在我写了这个问题。
  • 在您使用的浏览器中打开开发者工具...通常F12会打开它...转到网络选项卡,您将看到所有网络请求。请求正文和标头以及响应正文和标头通常有 2 个主要部分。看看你真正发送的是什么。
  • !isset($_POST['imgPath']) 应该是isset($_POST['imgPath'])if set ...你应该非常严格你所写的内容......到目前为止错误太多
  • 也许我不是很专心,我同意。但由此问题的本质并没有改变。和以前一样,php 不接收变量。
  • 你看到开发者工具的网络标签发生了什么吗?如果你想写一个回调到任何后端,这个标签应该是你最好的朋友!
【解决方案2】:

感谢@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);
        }
    });

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 2017-03-18
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    相关资源
    最近更新 更多