首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
拉勾
V2EX  ›  问与答

vue 设置了简单请求,仍然存在跨域问题

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

    1.前端浏览器报错如下:

    Access to XMLHttpRequest at http://xxx.xxx from origin 'http://localhost:8000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
    

    2.axios 封装

    封装代码

    1. 在封装基础做了修改
    // 创建 axios 实例
    const service = axios.create({
      baseURL: process.env.BASE_API, // api 的 base_url
      timeout: 5000, // 请求超时时间
      headers: { 'Content-Type': 'multipart/form-data' }
    })
    //实例中加了 headers (搜索说可以变为简单请求,不再发送 options )
    
    if (config.method === 'post') {
          config.data = qs.stringify({
            ...config.data
          })
        }
        // 拦截器加了这段代码格式化数据
    

    但是做了修改,仍然初次会发一个 options,并且 options 的请求为 302

    9 回复  |  直到 2019-01-16 08:31:11 +08:00
        1
    zhangnuli   69 天前 via Android
    生产环境存在环境跨域后台设置
    vue 开发环境配置 vue.confug.js
    瞎说的 😱
        2
    Trim21   69 天前 via iPhone
    你在拦截器里加了一个 x-token 的请求头,实际发出去的请求就不是简单请求了
        3
    momocraft   69 天前
    前端三大经典问题之一:如何发送 (违反浏览器安全策略的) 跨域请求
        4
    66beta   69 天前 via Android
    vue.config.js 中设置 devServer -≥ proxy
        5
    tyx1703   69 天前 via Android
        6
    CFO   69 天前 via Android
    开发环境配置 proxy 生产环境用相对路径
        7
    IsaacYoung   69 天前
    错误信息:preflight request 说明已经不是简单请求了
        8
    xiaohantx   68 天前 via Android
    @66beta 采用了这个解决方案解决了感谢
        9
    xiaohantx   68 天前 via Android
    @IsaacYoung 感谢学习到了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   852 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 19:46 · PVG 03:46 · LAX 12:46 · JFK 15:46
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1