js~ajax获取后端HTTP状态的几种情况

jquery发起ajax请求到后端接口,后端向前端返回数据,当然也存在后端接口直接重定向(302)到其它接口,然后再向前端返回数据,当然这种情况需要考虑跨域问题。

前端代码

  //测试一下http status
        $.ajax({
            type: "get",
            url: "/redirect",
            statusCode: {
                401: function () {
                    console.log("401");
                },
                404: function () {
                    console.log("404");
                },
                200: function () {
                    console.log("200");
                },
                302: function () {
                  // 获取不到当前页的状态,因为已经跳转,直接为目标页的状态
                  // 目标页返回是404,则前端接收就是404,当然如果目标页存在跨域的情况,那前端是没有状态返回的
                 console.log("302");
                }
            }
        });

后端请求

一 正常返回

如果只是后端接口直接返回数据,就使用后端接口状态,可能是200,400,401,403,500等

二 重定向

1 如果是同源(域)情况,直接返回重定向接口的状态码,下面例子中重定向到/a404接口,这个接口返回状态码是404,前端得到的响应码就是404

    @GetMapping("/redirect")
    public void rerei(HttpServletRequest request, HttpServletResponse response) {
       response.sendRedirect("http://localhost:9090/a404");
    }
    @GetMapping("/a404")
    public void a404(HttpServletResponse response){
        response.setStatus(404);
    }

2 如果是跨域情况,如果目标接口的服务端没有开启跨域策略,则不能返回状态

  @GetMapping("/redirect")
    public void rerei(HttpServletRequest request, HttpServletResponse response) {
       response.sendRedirect("http://www.baidu.com");
    }

这种情况的话,前端无法得到HTTP响应码,这只能在后端去处理,在前后分离的状态里,尽量不要在后端直接重定向,而是输出对应的响应结果,由前端完成重定向工作。

(0)

相关推荐

  • 前端面试题整理——手写AJAX

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  • 前端与移动开发----Vue---- json-server-安装及基本使用,axios基本使用,侦听器

    目标: 从模拟接口处获取数据 掌握axios的使用 理解写接口 在开发过程中,经常会遇到后端接口滞后的情况:前端页面写完了,后端的接口没有就绪(意味着前端没有数据可用),此时,我们就可以自己先准备接口 ...

  • moco接口测试

    不用再等后端的接口啦!这个开源项目花 2 分钟就能模拟出后端接口 这里是 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款开源免费的模拟后端 API 的工具:moco ...

  • 详解如何实现前端ajax的jsonp,看完这篇这个知识点就可以翻页了

    前言 上一篇文章我们主要聊了一下如何实现一个ajax,但是由于文章篇幅有限并没有聊到JSONP,它也是ajax重要的组成部分,所以这篇文章我们一起来看看如何实现一个JSONP. 为什么需要JSONP? ...

  • 使用AJAX获取Django后端数据

    使用Django服务网页时,只要用户执行导致页面更改的操作,即使该更改仅影响页面的一小部分,它都会将完整的HTML模板传递给浏览器.但是如果我们只想更新页面的一部分,则不必完全重新渲染页面-这时候就要 ...

  • asp.net 前端JS加密,后端c#解密

    近来有一个报名网站原来是内网访问的,近期要放到外网访问,但要求密码不能明文传输.在网上参考了几个帖子并整理出来: asp.net 前端JS RSA加密,后端c#解密 在分享源码之前,先准备一些东西: ...

  • VBA案例精选 获取Excel窗口状态

    代码运行结果: 代码截图: 代码文本: Public Sub 获取窗口状态() Dim myState As String myState = Application.WindowState If m ...

  • JS脚本获取URL信息的方法

    JS获取URL信息类 主要功能有: 1.获取URL基本信息,包括:网址,协议,端口号等. 2.地址栏获取参数. 3.将json格式的参数对象转换成字符串. //获取URL信息 var shaoURL ...

  • js/jQuery获取data-*属性值【转】

    下面就详细介绍四种方法获取data-*属性的值 <li id="getId" data-id="122" data-vice-id="11&qu ...

  • 前端通过ajax获取base64转blob下载PDF方法

    我们通常下载文件的方式无非后端给一个生成文件链接, 前端通过a标签或者iframe的方式去下载,这种方式的弊端是无法监测到文件是否下载完成,无法给用户友好的提示,以避免用户短时间内重复点击下载. 如果 ...

  • 获取用户:常见的5种裂变方式

    诸葛君说:随着获取流量的成本越来越高,各大企业都在寻找低成本获取流量的方法,其中最有效,也是最热的方式之一就是裂变,利用裂变的力量,可快速实现一分二,二分四的传播效果,而且通过裂变产生的新用户,他们的 ...

  • 发热与恶寒交替出现,漫谈中医应对这类状态的四种方法

    发热与恶寒交替出现,漫谈中医应对这类状态的四种方法

  • 获取不重复值的几种方法

    在很多情况下,我们都要获取不重复值,以方便进一步使用. 下面介绍几种获取不重复值的方法,供参考. 如下图1所示的示例工作表,希望获取不重复的班级列表. 图1 方法1:使用高级筛选 在Excel中,单击 ...