vue项目中vue.config.js怎么配置跨域

调用后端接口访问后台数据,但是因为请求url的协议、域名、端口三者之间任意一个与当前页面url不同产生了跨域,而且后端也没有配置允许跨域(后端如果配置跨域通常是cors),所以前端就要配

在当前文项目根路径新建一个文件,文件名固定为vue.config.js

module.exports = {
    // pabulicPath:process.env.NODE_ENV === 'production' ? '' : '',
    devServer:{
        host:'0.0.0.0',
        port:'8080',
        // https:false,
        open:true,
        //以上的ip和端口是我们本机的;下面为需要跨域的
        proxy:{ //配置跨域
            '/api':{
                target:'http://localhost:3000/web',
                ws:true,
                changeOrigin:true,//允许跨域
                pathRewrite:{
                    '^/api':''   //请求的时候使用这个api就可以
                }
            }
        }
    }
}

调用跨域接口

methods: {
    getData(){
      var param = {
        params:{
          devid:'8479593759372',
          user:'akdi',
          key:'8aad46f68c77e83ee2bcc3d9f9ec818a'
        }
      }
      this.$http.get('/api/news/list',param).then(res=>{
        console.log(res)
      })
    }
  }

成功拿到数据

注意    修改 之后需要重新启动项目   
如果配置了 axios 的baseurl  需要关掉  不然执行的还是  baseURL的 基础地址

const http = axios.create({
    // baseURL:'http://localhost:3000/web/api',
})

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在vue2,可以通过配置vue.config.js文件来实现跨域。具体步骤如下: 1. 在项目根目录下创建vue.config.js文件。 2. 在vue.config.js文件添加以下代码: ``` module.exports = { devServer: { proxy: { '/api': { target: 'http://localhost:300', // 代理的目标地址 changeOrigin: true, // 是否跨域 pathRewrite: { '^/api': '' // 重写路径 } } } } } ``` 3. 在代码使用axios等请求库时,将请求地址改为代理地址,例如: ``` axios.get('/api/data') ``` 这样就可以实现跨域请求了。其,target为代理的目标地址,changeOrigin为是否跨域,pathRewrite为重写路径。 ### 回答2: Vue.js是一种直观、轻量、高效的前端框架,它遵从组件化开发思想,能够简化用户界面开发过程,并支持以JSON格式进行开发。但是在开发过程,经常涉及到跨域问题,而Vue2提供了一种功能强大的方式,即vue.config.js配置方法来解决跨域问题。 在Vue2跨域请求需要在服务器端进行配置。在vue.config.js,可以通过配置devServer属性来实现解决跨域请求的问题。其devServer属性包含了一系列的配置,包括:host、port、open、proxy等。其proxy属性是配置跨域请求的最主要方法。 在使用proxy属性时,需要通过向proxy对象添加属性来配置跨域请求。具体的方法是:比如需要访问一个远程API服务地址,这个API服务地址为:http://www.apiserver.com/api。在配置文件,需要添加以下代码: ``` module.exports = { devServer: { proxy: { '/api': { target: 'http://www.apiserver.com', changeOrigin: true, secure: false, pathRewrite: { '^/api': '/api' } } } } } ``` 以上配置的含义是:将本地开发环境的请求的/api路径映射到远程服务地址:http://www.apiserver.com/api。需要注意的是,由于跨域请求是基于HTTP协议实现的,需要在请求添加一些标头信息来支持请求的正确传输,因此在配置需要设置changeOrigin属性为true。而secure属性则设置为false,因为异域服务器一般不会开启HTTPS协议。另外,需要使用pathRewrite属性来映射本地请求的路径信息和远程服务的路径信息。 总结来说,Vue2使用vue.config.js配置跨域请求的方法非常简单。只需要在配置文件添加一个proxy对象,并在proxy对象添加需要跨域访问的目标地址即可。通过这种方法,Vue2可以轻松地在开发环境实现与远程服务器的通信。 ### 回答3: Vue.js 是一款流行的 JavaScript 框架,它提供了丰富的功能和开发工具,使得构建复杂客户端应用程序变得更加容易和高效。但是在实际开发,由于浏览器的安全策略,可能需要跨域访问不同的 API 服务,这就需要对 Vue 项目进行配置跨域Vue2 使用 vue.config.js 进行配置vue.config.js 是一个可选的配置文件,如果你的 Vue2 项目需要改变一些默认配置,那么你就需要创建这个文件,并在其进行配置。在 Vue2 配置文件默认是不提供的,所以要手动创建。 在 vue.config.js 配置跨域需要使用 devServer.proxy 选项。devServer 是一个 webpack-dev-server 的选项,用来配置开发服务器的行为。proxy 选项用来指定代理配置。代理是一种常用的跨域解决方案,在客户端发起请求时,它会将请求发送到服务器,并将服务器的响应返回给客户端。 首先,在项目根目录下创建一个 vue.config.js 文件,并写入以下代码: ``` module.exports = { devServer: { proxy: { '/api': { target: 'http://api.example.com', changeOrigin: true, pathRewrite: { '^/api': '' } } } } } ``` 在上述代码,我们定义了一个名为 api 的代理配置,将项目的以 /api 开头的请求转发到 http://api.example.com 地址下。其,changeOrigin 选项表示将请求头的 host 设置为目标地址,pathRewrite 选项表示将 /api 开头的路径重写为空字符串。这样的话,当我们在客户端使用 axios 发送请求时,只需要将请求地址设置为 /api/xxx 就可以实现跨域访问后端 API 了。 总之,通过 vue.config.js 配置跨域可以有效地解决 Vue2 项目跨域访问的问题,同时也可以提高我们的开发效率并改善用户体验。但是,需要注意的是,在生产环境必须关闭跨域访问,否则会存在安全风险。因此,在生产环境应该使用服务器端代理、JSONP、CORS 等其他跨域解决方案。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值