Tom*_*ino 4 node.js express http-delete body-parser
我正在使用expressjs和body-parser中间件.
这就是我发起它的方式:
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
Run Code Online (Sandbox Code Playgroud)
从客户端我发送DELETE请求,当我尝试从服务器端提取它时,我得到一个空对象:
app.delete('/', function(req, res) {
console.log(util.inspect(req.body)); //outputs {}
//some more code
});
Run Code Online (Sandbox Code Playgroud)
但是当我发送POST时,我得到了我需要的东西:
app.post('/delete', function(req, res) {
console.log(util.inspect(req.body)); //outputs { mid: 'ffw1aNh2' }
//some more code
});
Run Code Online (Sandbox Code Playgroud)
值得注意的是,我没有在客户端更改任何内容(angularjs),但方法和url以及firefox网络调试器显示在两种情况下发送的数据.
这里缺少什么?为什么我在删除方法上获得一个空体对象?
Har*_*and 13
$ http服务源代码,使用$ http的DELETE请求不允许在请求正文中发送数据.
DELETE请求的规范在是否允许请求主体方面有些模糊,但Angular不支持它.
允许请求主体的唯一方法是POST,PUT和PATCH.所以问题不在你的代码中的任何地方,而是在Angular的$ http服务中.
用这个
$httpProvider.defaults.headers.delete = { "Content-Type": "application/json;charset=utf-8" };
Run Code Online (Sandbox Code Playgroud)
然后
$http.delete(url, { data: data })
| 归档时间: |
|
| 查看次数: |
7000 次 |
| 最近记录: |