Javascript Node.JS中的HTTP删除谓词
在向node.js应用程序发出删除请求之前,是否需要设置任何配置 我可以发出Javascript Node.JS中的HTTP删除谓词,javascript,node.js,http,rest,express,Javascript,Node.js,Http,Rest,Express,在向node.js应用程序发出删除请求之前,是否需要设置任何配置 我可以发出GET、POST或PUT请求,但DELETE请求无效 删除http://localhost:8081/api/1.0/entry从路由记录器中生成未定义的,我正在使用express注册路由。但看起来我甚至无法解析url/动词 这就是我调用它的方式: rows.find('a.remove').on('click', function(){ $.ajax({ url: '/api/1.0/entry
GET
、POST
或PUT
请求,但DELETE
请求无效
删除http://localhost:8081/api/1.0/entry
从路由记录器中生成未定义的
,我正在使用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
希望这有助于:
- 启用日志记录作为第一个中间件,以确保请求进入:
app.use(express.logger())代码>
- 使用methodOverride()中间件:
app.use(express.bodyParser())代码>
app.use(express.methodOverride());//在隐藏字段中查找删除谓词
- 创建一个.del()路由:
app.del('/api/1.0/entry',函数(req,res,next){…})代码>
$.ajax({
data:{_method:'delete'},
url: '/api/1.0/entry',
type: 'POST'
}).done(function(res){
var row = $(this).parentsUntil('tbody');
row.slideUp();
});
express中不需要配置。。。只需使用app.delete('/api/1.0/entry',函数(req,res){我以为它应该是
.del
?是的……你也可以使用.del。一直都在使用.delete。你在使用什么浏览器?chrome edge,为什么?我可以在控制台中看到请求被触发,它只是从来没有到达服务器日志记录被启用,但当请求进来时,我得到未定义的,作为路由,这真的很重要rdI认为如果你能发布你的(相关的)信息,那将非常有帮助服务器端代码…如果路由是undefined
,那么问题是客户端,而不是服务器端。Express将不会将undefined
与/api/1.0/entry
匹配。但是我在路由中间件之前得到undefined
,在Express.logger
中,请参阅OP以获取示例列表。我同意Golo,它将是我们我很高兴看到相关的服务器端代码。尤其是中间件堆栈。对于您来说,制作一个只有一个要调试的删除路由的最小服务器也是一个好主意。堆栈中有methodOverride()中间件吗?所有当代浏览器都支持它们。