You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Axios请求企业Web API返回SSO登录页HTML源码问题咨询

问题原因

你的请求被公司CAS单点登录系统拦截:未携带有效身份凭证的API请求会被服务端返回302重定向到登录页,Axios默认开启自动跟随重定向,因此最终拿到的是登录页的200响应,而非目标接口数据。

解决方案
  • 首先调整Axios基础配置,开启凭证携带、关闭自动重定向方便排查:
axios.get("https://exampleurl.com/v1/scenarios/", {
    headers : {
        Accept: 'application/json, text/plain, text/html, */*',
        // 部分SSO系统需要标识请求为AJAX类型,避免返回页面,可按需开启
        // 'X-Requested-With': 'XMLHttpRequest'
    },
    // 禁止自动跟随重定向,可直接捕获302状态便于排查
    maxRedirects: 0,
    // 携带当前环境下的Cookie(包含SSO登录凭证,浏览器环境生效)
    withCredentials: true
}).then(urlResonse => console.log(urlResonse))
  .catch(err => console.log(err))
  • 调整配置后请求仍被重定向,先在当前浏览器单独访问目标API地址https://exampleurl.com/v1/scenarios/,完成SSO登录流程获取有效凭证后再重试接口请求。
  • 如果公司SSO体系使用Token而非Cookie做身份校验,找内部SSO运维获取Token生成规则,将有效Token写入请求头的Authorization字段即可:
// 替换为实际获取的有效SSO Token
const ssoToken = "your_valid_sso_token";
axios.get("https://exampleurl.com/v1/scenarios/", {
    headers : {
        Accept: 'application/json, text/plain, text/html, */*',
        Authorization: `Bearer ${ssoToken}`
    }
}).then(urlResonse => console.log(urlResonse))
  .catch(err => console.log(err))
  • 如果你在Node.js等非浏览器环境调用接口,无法自动继承浏览器Cookie登录态,必须手动传入SSO Token,或先调用SSO登录接口获取有效凭证后再请求业务API。
  • 若请求为跨域请求,需联系API运维确认服务端已配置跨域规则:Access-Control-Allow-Credentials设置为true,且Access-Control-Allow-Origin为明确的源地址,不能使用通配符*。

内容的提问来源于stack exchange,提问作者Mara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 05:57:03