在向node.js应用程序发出DELETE请求之前,是否需要设置任何配置?
我可以提出GET
,POST
或PUT
个请求,但DELETE
个请求无效。
DELETE http://localhost:8081/api/1.0/entry
从路由记录器中产生undefined
,我正在使用express来注册路由。但看起来我甚至无法解析url /动词。
这就是我调用它的方式:
rows.find('a.remove').on('click', function(){
$.ajax({
url: '/api/1.0/entry',
type: 'DELETE'
}).done(function(res){
var row = $(this).parentsUntil('tbody');
row.slideUp();
});
});
示例日志
GET / 200 18ms
GET /author/entry 200 10ms
GET /api/1.0/entry 200 2ms
GET /api/1.0/entry 200 1ms
GET /api/1.0/entry 200 1ms
undefined
答案 0 :(得分:10)
希望这可以提供帮助:
启用日志记录作为您的第一个中间件,以确保请求进入:
app.use(express.logger());
使用methodOverride()中间件:
app.use(express.bodyParser());
app.use(express.methodOverride()); // looks for DELETE verbs in hidden fields
创建.del()路线:
app.del('/api/1.0/entry', function(req, res, next) { ... });
答案 1 :(得分:1)
所有浏览器都不支持类型设置的PUT和DELETE值:
请参阅文档http://api.jquery.com/jQuery.ajax/
您可以在ajax请求中使用POST类型,包括数据:{_ method:'delete'} :
$.ajax({
data:{_method:'delete'},
url: '/api/1.0/entry',
type: 'POST'
}).done(function(res){
var row = $(this).parentsUntil('tbody');
row.slideUp();
});