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

2019-01-15 19:22:03 +08:00
 xiaohantx

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

29627 次点击
所在节点    问与答
9 条回复
zhangnuli
2019-01-15 19:40:06 +08:00
生产环境存在环境跨域后台设置
vue 开发环境配置 vue.confug.js
瞎说的 😱
Trim21
2019-01-15 19:44:21 +08:00
你在拦截器里加了一个 x-token 的请求头,实际发出去的请求就不是简单请求了
momocraft
2019-01-15 19:45:48 +08:00
前端三大经典问题之一:如何发送 (违反浏览器安全策略的) 跨域请求
66beta
2019-01-15 19:47:15 +08:00
vue.config.js 中设置 devServer -≥ proxy
tyx1703
2019-01-15 19:57:36 +08:00
CFO
2019-01-15 20:08:34 +08:00
开发环境配置 proxy 生产环境用相对路径
IsaacYoung
2019-01-15 20:11:43 +08:00
错误信息:preflight request 说明已经不是简单请求了
xiaohantx
2019-01-16 08:30:53 +08:00
@66beta 采用了这个解决方案解决了感谢
xiaohantx
2019-01-16 08:31:11 +08:00
@IsaacYoung 感谢学习到了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/527341

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX