gpt4 book ai didi

javascript - AJAX DELETE 方法重定向不起作用

转载 作者:行者123 更新时间:2023-11-28 05:46:48 26 4
gpt4 key购买 nike

我正在尝试修复我的 jQuery AJAX 命令,其中单击 <a href="#">这会触发 DELETE请求我设置了路线的特定网址,然后重定向到新页面。 DELETE我的 AJAX 部分工作正常,但由于某种原因,成功部分将我的重定向解释为 /app作为DELETE要求。它似乎无法识别 GET我之前已经设置了URL,默认为DELETE 。谁能帮我确定我的方法的哪一部分不正确?

链接:

<a href="javascript:void(0);" id="card-delete-link"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span>DELETE</a>

jQuery:

<script type="text/javascript">
$(document).ready(function() {
$('#card-delete-link').click(function(){
$.ajax({
method: 'DELETE',
url: '/app/edit/{{card.cardId}}',
success: function(){
console.log('Annotation ID: ' + '{{card.cardId}}' + ' was deleted');
$.ajax({
method: 'GET',
url:'/app'
});
}
});
});
</script>

浏览器控制台:

jquery.js:8630 DELETE http://localhost:3000/app 404 (Not Found)

路线:

appRoutes.route('/edit/:cardId')
.delete(function(req, res){
models.Card.destroy({
where: {
userId: req.user.userId,
cardId: req.params.cardId
}
}).then(function(){
res.redirect('/app');
});
});

最佳答案

在node.js中,您使用.delete动词,这意味着它将忽略除 header 中规定的具有DELETE方法的请求之外的所有请求。这就是您的 GET 请求未被处理的原因。因此,您可以使用 window.location.replace() 轻松重定向成功,而无需向服务器发出第二次请求。另一方面,如果发出第二个请求很重要,只需创建一个新的路由

示例:

app.get('/', function (req, res) {
res.send('GET request to the homepage');
});

此外,您应该重新考虑您的代码,因为您将无法使用 ajax 请求进行重定向。

关于javascript - AJAX DELETE 方法重定向不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38457988/

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