【发布时间】:2021-07-31 14:46:18
【问题描述】:
想知道为什么我下面的代码不起作用。基本上我是从我的 url 中获取数据来删除一些东西。删除时,它应该刷新。但是它似乎不允许我这样做。但是如果我手动刷新页面,它的作用就是删除帖子。
当我使用 Ajax 方法时可以工作,但我不知道为什么。
获取方法
const deleteBTN = document.querySelectorAll('.deleteBtn');
const update = document.querySelectorAll('.postedNote');
console.log(deleteBTN);
for (let btn of deleteBTN) {
btn.addEventListener('click', (e) => {
console.log("Delete from front end");
console.log(btn[btn])
let id = e.target.dataset.btn;
fetch('http://localhost:3000/api/notes' + '/' + id, {
method: "DELETE",
}).then(() => {
Location: reload()
})
})
}
Ajax 方法
$(".deleteBtn").click((e) => {
$.ajax({
type: "DELETE",
url: `http://localhost:3000/api/notes/${e.target.dataset.btn}`,
success: function () {
console.log("delete success");
},
}).done(
setTimeout(() => {
window.location.reload();
}, 500)
);
});
【问题讨论】:
-
如果你也使用
window.location.reload();而不是Location: reload()来获取fetch呢? -
我已经尝试添加它,但它根本没有达到 .then() 方法
-
你真的需要重新加载吗?成功请求后,您可以通过操作 DOM 简单地删除元素。重新加载整个页面似乎是肮脏的解决方案。
标签: javascript ajax dom