我试图从DELETE请求中获取Get响应
我使用Ajax制作DELETE,目前正在使用成功重定向。
$("#delete-account").click(function() {
$.ajax({
url: '/user',
type: 'DELETE',
success: function() {
window.location='/user/new';
},
error: function(error) {
console.log(error);
}
});
});
和我的快车路线
router.delete('/', pass.isAuthenticated, function(req, res) {
User.remove({_id: req.user._id}, function(err){
if(err) return console.log(err);
req.flash('success', 'Your account has been deleted.');
res.redirect('/user/new'); <----------- this redirects to DELETE(/user/new)
});
});
重定向问题为DELETE响应。我尝试过设置req.method =&#39; get&#39;和res.method =&#39;得到&#39;以上。都没有工作。
有什么想法吗? : - /
答案 0 :(得分:1)
由于这是一个ajax调用,因此在DELETE调用结束后,最好不要再从浏览器拨打电话了吗?通常重定向用于将浏览器重定向到新的URL,但由于这是ajax调用,浏览器不会被重定向到任何地方。
如果您需要服务器告诉重定向的位置,我建议删除的响应如下:
router.delete('/', pass.isAuthenticated, function(req, res) {
User.remove({_id: req.user._id}, function(err){
if(err) return console.log(err);
req.flash('success', 'Your account has been deleted.');
res.send('/user/new'); <----------- Return location of new page
});
});
然后你的客户会这样做:
$("#delete-account").click(function() {
$.ajax({
url: '/user',
type: 'DELETE',
success: function(data) {
window.location=data;
},
error: function(error) {
console.log(error);
}
});
});