接口发生重定向导致二次请求重定向location连接时返回根目录的index.html

问题

在vue项目中,浏览器请求接口1发生了重定向请求接口2,返回了根目录下的index.html,实际想要的是请求接口1返回{status:405,...},并且在swagger接口文档中请求接口1,能正确返回响应内容为{status:405,...}

期望

在项目中请求接口1返回{status:405,...}

原因

通过截图可以发现是由于后端返回的重定向路径缺少了前端配置的代理前缀,导致未成功请求上接口

解决

打包上线的项目需要nginx配置,在代理转发里面添加

location /dev-api/ {
    ...;
    proxy_redirect / /dev-api/;
}

本地项目需要修改vite.config.ts配置,在proxy具体配置项里添加

configure(proxy, options) {
    proxy.on("proxyRes", (proxyRes, req, res) => {
        if (proxyRes.headers["location"]) {
            proxyRes.headers["location"] ="/dev-api" + proxyRes.headers["location"];
        }
    });
},    

修改后 

 

posted @ 2024-05-07 17:47  南无、  阅读(253)  评论(0)    收藏  举报