接口返回302 Found

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口返回302 Found相关的知识,希望对你有一定的参考价值。

参考技术A

vue项目,axios请求。
首先 ,如果不加以上请求头的话,返回的是302。这个时候在axios里面是报错的,直接走error。且response为undefined的,status为0。如下图(问题:为什么返回到status和接口显示到status code 不一致?)

其次 ,加上请求头设置。
axios

ajax

这个时候返回的是200,且能获取返回的信息。前端应该根据信息去重定向。
原因
X-Requested-With请求头用于在服务器端判断request来自Ajax请求还是传统请求(包括表单提交,a标签 img标签等)。
我的理解是即便不加这个请求头,我们发送的也是ajax请求,但是服务器不知道,所以是服务器强制要求,加上这个会判断为ajax请求。目前我们的项目,是通过单点登录系统做了一层拦截。也就是单纯的后台系统来判断的,如果不加这个请求头,单点登录系统就拦截到,直接给302了。如果加上了,就可以正确访问我们的接口,这个时候才能走到接口里面,拿到正确的返回值。 这里再判断是否登录过,返回不同的值。

以上是关于接口返回302 Found的主要内容,如果未能解决你的问题,请参考以下文章

基于 Django 类的视图:发布表单数据返回 302 Found 状态码

当服务器返回 HTTP 302 Found using HttpClient in C# 为啥我不能下载文件?

基于Django类的视图:发布表单数据返回302 Found状态代码

在 JavaScript 中捕获 302 FOUND

我的 POST ajax 请求在 Laravel 控制器上返回 302

301与302的区别