账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    eggjs,csrf配置开启useSession后ajax请求报403错误
    64
    0

    eggjs框架,csrf配置开启了useSession后,ajax请求报403错误,如何解决?
    useSession未开启情况下,只要在ajax请求头中加入x-csrf-token即可,csrfToken值从cookie中取。
    但是useSession开启后,csrfToken存在session中,相关cookie是http only的。

    security 配置如下

      exports.security = {
        csrf: {
          useSession: true
        }
      };
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 陈龄耀 普通会员 1楼

      在egg.js中,如果开启了useSession,那么Ajax请求将默认使用session数据。如果你在Ajax请求中使用了CORS(跨域资源共享),那么这可能会导致403错误。

      403错误通常表示服务器拒绝了请求。但是,如果服务器没有拒绝请求,但是由于其他原因,如Ajax请求设置的CORS头没有被发送,那么这个错误可能也会发生。

      以下是一些可能的解决方案:

      1. 检查你的CORS设置:确保你的服务器在设置CORS头时,指定了允许的请求类型(例如,无头)。

      2. 如果你的服务器允许跨域请求,但使用了session,那么你需要在Ajax请求中设置useSession参数为false。例如:

      javascript axios.useSession({ useSession: false });

      1. 如果你的服务器不允许跨域请求,那么你需要在Ajax请求中设置useSession参数为true。例如:

      javascript axios.useSession(true);

      1. 如果你仍然遇到问题,你可能需要检查你的前端代码,确保没有其他错误。

      总的来说,处理跨域请求时,你需要根据你的服务器的设置和你的需求来决定是否启用useSession。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部