首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vue.js
V2EX  ›  Vue.js

axios 跨域请求 headers 问题

  •  
  •   aoscici2000 · 68 天前 · 1517 次点击
    这是一个创建于 68 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有点搞不太东跨域这玩意:

    后端我设置了允许所有域名和请求头

    def set_default_headers(self, *args, **kwargs):
    	self.set_header('Access-Control-Allow-Origin', '*')
    	self.set_header('Access-Control-Allow-Headers', '*')
    	self.set_header('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS')
    
    axios({
    	method: 'get',
    	url: '/api/user',
    	headers: {'jwtoken': '0000000'}
    })
    

    这个 0000000 的值该怎么拿到?

    后台打印出来的 headers 会多一个 Access-Control-Request-Headers: jwtoken

    6 回复  |  直到 2019-08-10 19:11:27 +08:00
        1
    SunriseFox   68 天前 via Android
    Access-Control-Allow-Origin' 的值不能是 '*',必须是具体的 Host
        2
    weixiangzhe   68 天前 via iPhone
    withcredential 还要加下
        3
    whoami9894   68 天前
    因为加了`jwttoken`的请求不属于简单请求,浏览器会先发一个 OPTIONS 预检,你需要先响应这个 OPTIONS 请求返回 ACAO 和 ACAH 头,接着才能收到真正的跨域请求,在真正的跨域请求中就可以直接 headers['jwttoken']
    不过不建议自己实现 CORS 的处理,有成熟的库
        4
    aoscici2000   68 天前
    @SunriseFox 好像也可以的? 其他 put post 只要 headers 没要求都正常
        5
    aoscici2000   68 天前
    @whoami9894 好像有点印象, 之前遇到过一些请求要先走一趟 OPTIONS 的, 先试试, 谢谢哈
        6
    ffeii   68 天前 via iPhone
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1043 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 22:41 · PVG 06:41 · LAX 15:41 · JFK 18:41
    ♥ Do have faith in what you're doing.