在express做后台,ajax请求后后台req.xhr为什么为false

前端代码

const ajax = new XMLHttpRequest()
//处理过程
ajax.open('POST','/login',false)
ajax.setRequestHeader('Content-type','application/x-www-form-urlencoded')
ajax.setRequestHeader('X-Request-with','XMLHttpRequest')
ajax.send(data)

后端

app.use(function (req, res, next) { 
    if(req.xhr)     //这里值为false
    //.....
}

前端渣渣,望大神指点一二,不胜感激

阅读 5.1k
4 个回答
console.log(req.headers);

找找xmlhttprequest

req有xhr属性吗?我没见到过
post请求的话需要解析
body-parser模块解析post请求了吗?
解析完 是在req.body里取的
你写的这个中间件是要做登录校验吧

app.use(function(req,res,next){
    console.log(req.body)
})

找到问题所在了,是因为前端设置的前端的setRequestHeader()有问题
前端:

//之前设置成了'X-Request-with'
ajax.setRequestHeader('X-Requested-with','XMLHttpRequest')

后端:

req.xhr    //true

req没有xhr属性,只有url属性,你可以去了解一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题