为什么axios headers里面需要携带'X-Requested-With' :XMLHttpRequest?

1,363 阅读1分钟

这两天在联调公司的项目,在联调登录的时候发现,后端调用单点登录的时候,Headers里面直接返回了Status Code:302,重定向到了其他页面,但是response code里面是没有状态码的,前端拿不了302,因此无法做任何逻辑处理。

于是和单点登录的人员进行了沟通,了解到需要前端在headers里面携带'X-Requested-With' :XMLHttpRequest,听到这的我,嗯?只见过没用过,所以这有什么用呢?

随手打开google查阅了下,得到一个简单明了的答案: 后端需要有一个标识来区分请求类型:

  • 如果是ajax请求,将会返回json(包括错误信息)
  • 如果是http请求,可能会重定向到其他页面或者别的 为了解决上面重定向的问题,我们决定加上X-Requested-With' :XMLHttpRequest参数,让后端明确是ajax请求,返回相应的错误信息,做相应的逻辑处理。

👆上面的问题是解决了,但是后端为什么要采用两种请求呢??

问了后端的同学了解到,原来前后端未分离的时候,是只有http请求,前后端分离后,就是ajax+http请求的形式了,便于前后端协作。

最后,完结撒花🎉,下次见呀~