Vue 跨越问题解决 No ‘Access-Control-Allow-Origin‘

一、问题

Access to XMLHttpRequest at 'http://xxx/wx_pn/wx_code_ticket' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

在这里插入图片描述

二、解决方法

  1. 项目根目录下创建 vue.config.js
module.exports = {
    devServer: {
        open: true,
        host: 'localhost',
        port: 项目运行端口,
        https: false,
        hotOnly: false,
        proxy: {
          // 配置跨域
          '/api': {
            target: 'http://xxx',//后端接口地址
            ws: true,
            changOrigin: true,
            pathRewrite: {
              '^/api': ''
            }
          }
        },
    }
  }
  
  1. 配置main.js
import Vue from 'vue'
import axios from 'axios'
...

Vue.prototype.$axios = axios
axios.defaults.baseURL = '/api'

...
  1. 使用方式

方式一

// 微信公众号请求
import axios from 'axios'
// 超时时间
axios.defaults.timeout = 10 * 1000
// 跨域请求允许保存cookie
axios.defaults.withCredentials = true

let base = '/aaa'

// 获取ticket
export const wx_code_ticket = () => {
    return axios({
        url:`${base}/bbb`,
        method:'GET',
    })
}

<script>
import {wx_code_ticket} from '@/api/wx_pn'
export default {
    name:'Code',
    data() {
        return {
            img_base64:'',
        }
    },
    beforeMount() {
    	this.getCode()
    },
    methods:{
        getCode:()=>{
            return new Promise(()=>{
                console.log(wx_code_ticket)
                wx_code_ticket().then(resp=>{
                    console.log(resp)
                })
            })
        }
    }
}
</script>

方式二

```js
<script>
export default {
    name:'Code',
    data() {
        return {
            img_base64:'',
        }
    },
    beforeMount() {
         this.$axios({
         url:`/aaa/bbb`,
         method:'GET',
     }).then(resp=>{
             console.log(resp)
     })
    },
}
</script>

参考:
https://www.cnblogs.com/hb88/p/12899909.html
https://blog.csdn.net/mike_95/article/details/110494213
https://blog.csdn.net/wh_xmy/article/details/87705840(原理)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值