2023vue中不使用代理转发

 所属分类:web前端开发

 浏览:36次-  评论: 0次-  更新时间:2023-05-24
描述:更多教程资料进入php教程获得。 在使用Vue进行开发时,我们经常需要与后端API服务器进行交互。为了避免CORS(Cross-Origin Resource Shar...
更多教程资料进入php教程获得。

在使用Vue进行开发时,我们经常需要与后端API服务器进行交互。为了避免CORS(Cross-Origin Resource Sharing)问题,通常会在Vue的配置中使用代理转发进行请求转发。但是,有时候我们需要在不使用代理的情况下直接与API服务器进行交互,这时该怎么做呢?

1.使用第三方库

如果你不想使用VueCLI的默认代理配置,你可以选择使用第三方库来进行请求。比如我们可以使用Axios,通过在请求时设置请求头和相关参数,直接与API服务器进行交互。

首先,我们需要在Vue项目中安装Axios:

npm install axios --save
登录后复制

在需要进行请求的组件中,我们可以这样使用Axios:

import axios from 'axios'

axios.get('/api/getUserInfo', {
  headers: {
    'Content-Type': 'application/json'
  }
}).then(res => {
  console.log(res)
})
登录后复制

在代码中,我们使用Axios的get方法来进行请求,同时设置请求头为contentType为application/json。这样就可以直接向API服务器发起请求,获取数据。

2.使用Webpack Plugin

我们也可以通过Webpack的插件来实现不使用代理转发的请求。具体实现是通过配合express和http-proxy-middleware插件设置一个本地的服务器来替代代理服务器,从而实现对API服务器的访问。

首先,我们需要先安装相关插件:

npm install express http-proxy-middleware --save-dev
登录后复制

在项目根目录中新建一个server.js文件,用于启动本地服务器:

const express = require('express')
const proxy = require('http-proxy-middleware')

const app = express()

app.use('/api', proxy({
  target: 'http://api.server.com',
  changeOrigin: true,
  pathRewrite: {
    '^/api': ''
  }
}))

app.listen(3000, () => {
  console.log('Server is running at localhost:3000')
})
登录后复制

这里我们通过使用http-proxy-middleware来实现对API服务器的转发,同时设置target来指定目标服务器。

然后,在package.json文件中添加一个script命令,用于启动本地服务器:

"scripts": {
  "dev-server": "node server.js"
}
登录后复制

最后,在Vue项目中的axios配置中将baseURL设置为http://localhost:3000/api,即可直接向API服务器发起请求:

import axios from 'axios'

axios.defaults.baseURL = 'http://localhost:3000/api'

axios.get('/getUserInfo').then(res => {
  console.log(res)
})
登录后复制

这样,我们就可以直接通过http://localhost:3000/api/getUserInfo地址向API服务器发起请求。

总结

以上就是两种使用Vue进行开发时不使用代理转发的方法。虽然使用代理转发是解决CORS的有效方法,但是在某些情况下,直接与API服务器进行交互更加方便。希望本篇文章对你有所帮助。

以上就是vue中不使用代理转发的详细内容,更多请关注zzsucai.com其它相关文章!

 标签: ,
积分说明:注册即送10金币,每日签到可获得更多金币,成为VIP会员可免金币下载! 充值积分充值会员更多说明»

讨论这个素材(0)回答他人问题或分享使用心得奖励金币

〒_〒 居然一个评论都没有……

表情  文明上网,理性发言!