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】前端解决跨域问题的更多相关文章

  1. 搞懂:前端跨域问题JS解决跨域问题VUE代理解决跨域问题原理

    什么是跨域 跨域:一个域下的文档或脚本试图去请求另一个域下的资源 广义的跨域包含一下内容: 1.资源跳转(链接跳转,重定向跳转,表单提交) 2.资源请求(内部的引用,脚本script,图片img,fr ...

  2. web添加第三方应用,前端解决跨域问题的8种方案

    应用场景 web应用通过QQ登录授权实现第三方登录. 操作步骤 1. 注册成为QQ互联平台开发者,http://connect.qq.com/ 2. 准备一个可访问的域名,如dev.foo.com 3 ...

  3. [转] js前端解决跨域问题的8种方案(最新最全)

    1.同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.j ...

  4. vue.js 解决跨域问题

    我们调试vue.js代码的时候一般都用chrome, 下载插件 进入chrome应用商店 搜索 重启chrome就可以解决跨域问题

  5. 前端解决跨域问题的终极武器——Nginx反向代理

    提到代理,分为:正向代理和反向代理. 正向代理:就是你访问不了Google,但是国外有个VPN可以访问Google,你访问VPN后叫它访问Google,然后把数据传给你. 正向代理隐藏了真实的客户端. ...

  6. vue中解决跨域问题

    方法1.后台更改header header('Access-Control-Allow-Origin:*');//允许所有来源访问 header('Access-Control-Allow-Metho ...

  7. vue脚手架解决跨域问题-------配置反向代理

    1.打开config/index.js 2.在dev配置对象中找到proxyTable:{} 3.添加如下配置 // 配置反向代理,解决跨域请求 proxyTable: { '/api': { tar ...

  8. vue cli 解决跨域 线上 nginx 反向代理配置

    前后分离 axios 接 api 跨域问题如图: 解决办法: 1. npm start 本地开发环境解决: 在webpack配置文件 /config/index.js 里找到 proxyTable 开 ...

  9. vue jsonp解决跨域处理

    1.安装vue jsonp npm i -S vue-jsonp 2.在main.js中导入vue-jsonp import VueJsonp from 'vue-jsonp' 通过use方法,挂载到 ...

  10. 13、vue如何解决跨域问题

    开发环境:配置config文件夹中index.js文件: proxyTable: { '/api': { target: 'http://10.10.1.242:8245',//后端地址 // sec ...

随机推荐

  1. 第12组 Beta冲刺 总结

    1.基本情况: 组长博客链接:https://www.cnblogs.com/yaningscnblogs/p/14050343.html 答辩总结:答辩中,对于老师提出的意见,我们认为能够帮助我们更 ...

  2. OO_Lab0总结博客

    OO_Lab0 问题描述 对表达式结构进行建模,将表达式中非必要的括号进行展开并化简. 设定的形式化表述(仅写出部分): 表达式 \(\rightarrow\) 空白项 [加减 空白项] 项 空白项 ...

  3. 归纳了一下AD的快捷键

    1:shift+s 键 切换单层显示 2:q     英寸和毫米 尺寸切换3:D+R进入布线规则设置.其中 Clearance 是设置最小安全线间距,覆铜时候间距的.比较常用4:CTRL+鼠标单击某个 ...

  4. Sublime Text3汉化好的绿色免安装版使用和破解教程+下载链接

    这个资源是我从官网上面下载好的Sublime Text3绿色版,然后通过网上的教程汉化之后再压缩的.理论上下载完之后,解压就可以用了,不过由于是绿色版,可能需要调一下默认打开方式.才好直接双击打开.绿 ...

  5. 第七章 狄克斯特拉算法 (Dijkstra's algorithm)

    步骤 找出最便宜的节点,即可在最短时间内前往的节点 对于该节点的的邻居,检查是否有前往他们的更短路径,如果有,就更新其开销 重复这个过程,知道对图中的每个节点都这样做了 计算最终路径 条件 只适用于有 ...

  6. 转:MyBatis 日志打印

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012666996/article/details/79106599Mybatis SQL语句控制台 ...

  7. 006Java程序运行机制

    006Java程序运行机制 高级程序语言分为编译型和解释型两种,Java这两种特性都具备. 编译型还是解释型取决于翻译的时机. 以看一本外语书为例: 编译型:先把整本书翻译成中文版再看. 解释型:请个 ...

  8. c++中的构造函数,拷贝构造函数和赋值函数

    1.拷贝构造和赋值函数的区别: 1)拷贝构造函数是一个对象初始化一块内存区域,这块内存就是新对象的内存区,而赋值函数是对于一个已经被初始化的对象来进行赋值操作. 2)一般来说在数据成员包含指针对象的时 ...

  9. jquery 选择器 或 且

    jquery选择器具有很强大的功能,基本的使用方法随处可见,jquery还提供了更为方便的使用. 且:$("div[id^='AAA_']div[id$='_DIV']"),此选择 ...

  10. Fiddler之常用的操作

    Fiddler操作 一.首次安装 1.设置https Tools → Options → https 第一次选择安装证书,如图 2.无法正常显示https请求 重置所有证书,重置后会重新提示安装证书, ...