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

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

  •  
  •   xiaohantx · 2019-01-15 19:22:03 +08:00 · 29790 次点击
    这是一个创建于 2143 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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
    zhangnuli
        1
    zhangnuli  
       2019-01-15 19:40:06 +08:00 via Android
    生产环境存在环境跨域后台设置
    vue 开发环境配置 vue.confug.js
    瞎说的 😱
    Trim21
        2
    Trim21  
       2019-01-15 19:44:21 +08:00 via iPhone
    你在拦截器里加了一个 x-token 的请求头,实际发出去的请求就不是简单请求了
    momocraft
        3
    momocraft  
       2019-01-15 19:45:48 +08:00
    前端三大经典问题之一:如何发送 (违反浏览器安全策略的) 跨域请求
    66beta
        4
    66beta  
       2019-01-15 19:47:15 +08:00 via Android
    vue.config.js 中设置 devServer -≥ proxy
    tyx1703
        5
    tyx1703  
       2019-01-15 19:57:36 +08:00 via Android
    CFO
        6
    CFO  
       2019-01-15 20:08:34 +08:00 via Android
    开发环境配置 proxy 生产环境用相对路径
    IsaacYoung
        7
    IsaacYoung  
       2019-01-15 20:11:43 +08:00
    错误信息:preflight request 说明已经不是简单请求了
    xiaohantx
        8
    xiaohantx  
    OP
       2019-01-16 08:30:53 +08:00 via Android
    @66beta 采用了这个解决方案解决了感谢
    xiaohantx
        9
    xiaohantx  
    OP
       2019-01-16 08:31:11 +08:00 via Android
    @IsaacYoung 感谢学习到了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5503 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:38 · PVG 16:38 · LAX 00:38 · JFK 03:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.