admin 管理员组文章数量: 1184232
Vue 解决跨域问题
通常在不同服务器访问过程中可能会遇到跨域问题,也就是口头上常说的策略同源问题 CORS
出现跨越一般就是判断三个地方,http协议,请求地址,端口号,三者若有一处不相同,那么就会出现跨域,解决这个问题就要配置一个代理服务器,通过代理服务器实现跨域请求
解决跨域的情况一般就是如下图:
Vue 中配置跨域的配置在 vue.config.js 文件中添加:
配置一个的写法
module.exports = {
devServer: {
proxy: 'http://localhost:5000' // 配置访问的服务器地址
}
}
配置多个的写法
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://localhost:5000', // 配置访问的服务器地址
pathRewrite: { '^/api': '' }, // 用于将请求中的 /api 字符串替换为空, 然后访问地址就能正确访问,若不添加此行配置,那么访问地址就变成了: http://localhost:5000/api/request_url,这样的请求就会出现 404 操作
ws: true, // 是否支持 webstocket, 默认是 true
changeOrigin: true // 用于控制请求头中的 host 值, 默认是 ture
},
'/api2': {
target: 'http://localhost:6000', // 配置访问的服务器地址
pathRewrite: { '^/api2': '' }, // 用于将请求中的 /api2 字符串替换为空, 然后访问地址就能正确访问,若不添加此行配置,那么访问地址就变成了: http://localhost:6000/api/request_url,这样的请求就会出现 404 操作
ws: true, // 是否支持 webstocket, 默认是 true
changeOrigin: true // 用于控制请求头中的 host 值, 默认是 ture
}
}
}
}
添加完代理服务器的相关配置,就需要通过 ajax 请求访问服务器了,一般 vue 中使用的都是 axios 库,这里就以 axios 库为例子:
安装 axios
npm i axios
使用 axios
// 引入 axios 库
import axios from 'axios'
export default {
name: 'Student', // 组件名称
// 组件使用的方法
methods: {
注释内容 `:get 请求访问 /api 前缀开头的地址,实际上访问的地址是: http://localhost:5000/request_url`
test1() {
axios.get('http://localhost:8080/api/request_url').then(res => {
console.log(res.data); // 输出请求响应值内容
});
},
注释内容 :`get 请求访问 /api2 前端开头的地址,实际上访问的地址是:http://localhost:6000/request_url`
test2() {
axios.get('http://localhost:8080/api2/request_url').then(res => {
console.log(res.data); // 输出请求响应值内容
})
}
}
}
本文标签: Vue
版权声明:本文标题:Vue 解决跨域问题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1754941117a3052570.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论