【Vue】前端解决跨域问题
Vue解决跨域问题
什么是跨域:违背了同源策略,即协议名、主机名、端口号必须一致。浏览器与服务器之间存在跨域问题,而服务器与服务器之间由于通过Http通信是不存在跨域问题的。
如图所示,浏览器端口号8080与服务器5000不一致导致跨域问题,需要注意的是跨域问题并不是没有发送响应请求,而是在服务器响应给浏览器时,浏览器发现跨域而将数据隐藏了起来
解决跨域的策略
1 cors
大致思路:服务器在响应给浏览器数据时会在响应体中携带一些特殊的响应头,以告知浏览器可以无视跨域问题。
但是在开发中响应头是不能随便修改的,而且这种策略需要完全由后端进行
2 jsonp
大致思路:利用script标签的src属性不受同源跨域问题影响的特性
但是需要前后端同时进行修改,而且只能处理get请求
3 使用代理服务器(常用)
如此一来,8080端口的浏览器端和8080代理服务器通过ajax请求通信就不存在跨域问题,而且同时服务器和代理服务器是通过http通信,更不存在跨域问题
代理服务器的配置 方式一
vue.config.js
module.exports = {
pages: {
index: {
entry: 'src/main.js'
}
},
devServer: {
proxy: 'http://localhost:5000'
}
}
同时修改前端页面的请求端口号为代理服务器的8080
代理服务器的配置 方式二
devServer: {
proxy: {
// 路径中出现'/hikaru'时,代理服务器就开始工作
'/hikaru': {
// 目标服务器
target: "http://localhost:5000",
// 路径重写
pathRewrite: {'^/hikaru':''},
// 用于启用webSocket,webSocket也是客户端和服务器的通信方式
ws: true,
// 用于修改修改来源,为true则修改来源为与目标服务器相同
changeOrign: true
}
}
}
【Vue】前端解决跨域问题的更多相关文章
- 搞懂:前端跨域问题JS解决跨域问题VUE代理解决跨域问题原理
什么是跨域 跨域:一个域下的文档或脚本试图去请求另一个域下的资源 广义的跨域包含一下内容: 1.资源跳转(链接跳转,重定向跳转,表单提交) 2.资源请求(内部的引用,脚本script,图片img,fr ...
- web添加第三方应用,前端解决跨域问题的8种方案
应用场景 web应用通过QQ登录授权实现第三方登录. 操作步骤 1. 注册成为QQ互联平台开发者,http://connect.qq.com/ 2. 准备一个可访问的域名,如dev.foo.com 3 ...
- [转] js前端解决跨域问题的8种方案(最新最全)
1.同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.j ...
- vue.js 解决跨域问题
我们调试vue.js代码的时候一般都用chrome, 下载插件 进入chrome应用商店 搜索 重启chrome就可以解决跨域问题
- 前端解决跨域问题的终极武器——Nginx反向代理
提到代理,分为:正向代理和反向代理. 正向代理:就是你访问不了Google,但是国外有个VPN可以访问Google,你访问VPN后叫它访问Google,然后把数据传给你. 正向代理隐藏了真实的客户端. ...
- vue中解决跨域问题
方法1.后台更改header header('Access-Control-Allow-Origin:*');//允许所有来源访问 header('Access-Control-Allow-Metho ...
- vue脚手架解决跨域问题-------配置反向代理
1.打开config/index.js 2.在dev配置对象中找到proxyTable:{} 3.添加如下配置 // 配置反向代理,解决跨域请求 proxyTable: { '/api': { tar ...
- vue cli 解决跨域 线上 nginx 反向代理配置
前后分离 axios 接 api 跨域问题如图: 解决办法: 1. npm start 本地开发环境解决: 在webpack配置文件 /config/index.js 里找到 proxyTable 开 ...
- vue jsonp解决跨域处理
1.安装vue jsonp npm i -S vue-jsonp 2.在main.js中导入vue-jsonp import VueJsonp from 'vue-jsonp' 通过use方法,挂载到 ...
- 13、vue如何解决跨域问题
开发环境:配置config文件夹中index.js文件: proxyTable: { '/api': { target: 'http://10.10.1.242:8245',//后端地址 // sec ...
随机推荐
- 《Linux就该这么学》这本书写得真好,我很喜欢。
本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国内最值得去读的Linux教材,也是最有价值 ...
- 12.14linux学习第十七天
今天老刘收了下第13章尾巴,讲了第14章和第15章. 13.6 分离解析技术 现在,喜欢看我们这本<Linux就该这么学>的海外读者越来越多,如果继续把本书配套的网站服务器(https:/ ...
- 全面加速 GitHub,git clone 太慢的 9 种解决办法
https://cloud.tencent.com/developer/article/1835785
- 【内存管理】ION内存管理器浅析(system contig heap)
system contig heap与system heap 从代码中我们看到system contig heap与system heap同属一个文件中,ion_system_heap.c 相同点:它 ...
- Linux命令之定时调度-crontab
以上cron命令格式为:* * * * * [root run-parts] command 前面五个*号代表时间,用数字,数字的取值范围和含义如下: 第一个*:分钟 (0-59)[整数] 第二个*: ...
- git 本地项目初始化提交至仓库
命令行指令 Git初始化配置 git config --global user.name"abc" git config --global user.email"1234 ...
- CH573 CH582 CH579蓝牙从机(peripheral)例程讲解四(蓝牙动态广播)
动态广播有两种实现方式: 1.关闭广播,更改广播包数据,等待关闭上报状态后,开启广播. uint8_t initial_advertising_enable = FALSE; GAPRole_SetP ...
- Hive使用Tez作为计算引擎,hive启动报错
1.问题描述: (1)问题示例: 1)hive使用配置文件hive-site.xml配置tez为计算引擎,hive登录报错: [Hadoop@master Tmp]$ hiveHive Session ...
- 西电oj 244题单词排序
题目描述: 定义一个二维字符数组str[10][20],行号表示单词序号,列号表示单词最大长度, 输入一个正整数N(N≤10),表示单词数,使用函数wd_sort()完成单词的排序,按字母顺序从小到大 ...
- 转载C#文件下载的实现
一.//TransmitFile实现下载 protected void Button1_Click(object sender, EventArgs e) { /* ...