写一个本地post请求发数据到本地服务器,然后通过本地服务器post到远程服务器http://www.imooc.com/data/check_f.php,然后发现一直报错504,检查了很久,发现我把bodyParser.json()或者bodyParser.urlencode()的其中一种注释掉都可以获取到数据(我之前是两种方式都存在的)。 不明白,这两种解析同时全局写为什么会有干扰?
客户端: $.post(“http://localhost:3000/data/check_f.php”, { num: $("#inputNumber").val() }, function (data) { $("#infoList").append("<li>你输入的数字 <b>" + $("#inputNumber").val() + “</b>是<b>” + data + “</b></li>”); }) 本地服务器端用代理(同时请求体原先用上面两种方式解析): var proxy = require(‘http-proxy-middleware’); var dataProxy = proxy(’/data’, { target: “http://www.imooc.com/”, changeOrigin: true }); app.use(’/data/*’, dataProxy);
为什么会有冲突呢?
楼主,你好
bodyParser.json() 解析的是请求头为Content-Type: application/json
的。解析到req.body
bodyParser.urlencoded({ extended: false })解析的是请求Content-Type: application/x-www-form-urlencoded
的。解析到req.body
两者混合使用是没有冲突的。
@WenNingZhang 是的,没冲突,其实我描述这问题不太准备,实际的504原因是我不该对跨域的请求进行请求体解析造成的。实际的原因我已经分析出来了,谢谢。 可以看看 https://segmentfault.com/q/1010000012831152 ,如果有不准确的可以指出。