gpt4 book ai didi

javascript - 如何仅使用 a 标签通过 AJAX 进行 POST

转载 作者:行者123 更新时间:2023-11-28 18:43:35 26 4
gpt4 key购买 nike

我有一个a标签是使用数据库内容动态生成的,它包括一个数据目标,当我单击它时,我会在 javascript 中捕获该数据目标,这是生成的按钮之一的示例:

<a href="#" data-target="edit/?id=1">Edit</a>

很简单吧?

现在,当点击它时我在 JS 中执行的操作如下:

var $this = $(this),
$target = $this.data("target"),
$endpointURL = "";

$endpointURL = $target.split("?id=")[0];

$id = $target.split("?id=")[1];

这允许我设置我想要的端点,在上面的示例中,它将是“编辑”,并且还设置此时只是一个数字的 id。

现在,我必须将此 ID 发布到编辑端点才能返回正确的信息,对吗?

所以,这是我的 AJAX:

$.ajax({
type: "POST",
data: '{"id": ' + $id + ' }',
url: "../assets/scripts/php/" + $endpointURL,
success: function (data) {
$("#content-lockup").html(data);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log("error: " + textStatus + ", error thrown: " + errorThrown);
}
});

这不会引发错误,并且确实输出了我设置的 $_POST 数组的 var 转储,但是它不包含我传递的 ID,这是端点上的代码和屏幕截图输出:

<?php

var_dump($_POST);

?>

enter image description here

为什么 $_POST 上的 vardump 不包含我在明显成功的 AJAX 请求中传递的 id?

我期望的是我可以在端点上说,比如:

$id = $_POST['id'];

也许很明显我做错了,但是,有什么想法吗?

最佳答案

这是因为您将字符串传递给未进行表单编码的data

将其设为对象,jQuery 将为您对其进行编码

data: {"id": $id },

如果是字符串,则需要采用格式

data: 'id=' +id + '&someOtherParam=' + somevar

关于javascript - 如何仅使用 a 标签通过 AJAX 进行 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35737622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com