vue中域名跨域404的原因
vue中如何实现跨域
关于vue中如何解决跨域的问题,可以参考这篇文章
https://blog.csdn.net/wh_xmy/article/details/87705840
vue中如何实现多域名跨域
多域名跨域,就是该项目中不仅仅只有一个接口需要跨域,可能有两个三个接口都需要跨域。如果是多域名跨域,可以在config/index.js中的proxyTable中写多个匹配规则
pathRewrite的作用&proxyTable实现跨域的流程
在上面链接里的文章中,有这样一句话:“// 替换target中的请求地址,也就是说以后你在请求http://api.douban.com/v2/XXXXX这个地址的时候直接写成/api即可。”,我并不理解这句话是什么意思,于是我试验了一下,以下是我项目的背景和试验的流程:
背景:
有两种跨域的接口,一种是请求到loc-admin.xxx.com,一种是请求到loc-dynamicsite.xxx.com:8086/api/
我的正确写法:
dev: {env: require('./dev.env'),port: 8082,host: 'localhost',autoOpenBrowser: true,assetsSubDirectory: 'static',assetsPublicPath: '/',proxyTable: {'/templateApi':{target: 'http://loc-dynamicsite.114my.com:8086/api/',changeOrigin: true,pathRewrite:{ // 路径重写,'^/templateApi': '' // 替换target中的请求地址,也就是说以后你在请求http://api.douban.com/v2/XXXXX这个地址的时候直接写成/api即可。}}, '**/*': {target: 'http://loc-admin.114my.com/',changeOrigin: true,filter: function (pathname, req) {if(pathname.indexOf('/api') == 0){return true;}return pathname.match('^/[^static|_|content].*$') || pathname.match('^/api/.*?$')}},},cssSourceMap: false}
最初在配置templateApi时,我没有写pathRewrite,导致接口一直404。添加pathRewrite后神奇的访问成功了。
下面我们修改正确写法中的pathRewrite来看看他是干嘛的:
废话不多说,贴图
我把'^/tempalteApi'更换为‘^/tempalte’,请求一下
我们可以看到在postman的地址栏,请求的是http://localhost:8082/templateApi/Template/Load/,
然后下面的报错信息:"Message": "找不到与请求 URI“http://loc-dynamicsite.xxx.com:8086/api/Api/Template/Load/”匹配的 HTTP 资源。"
注意红色部分,上面的红色部分经过proxyTable后变成了下面的红色部分,我直接解释一下proxyTable的工作原理
步骤一:
通过templateApi匹配到proxyTable中的templateApi{}部分
步骤二:
通过pathRewrite里的 '^/template' 将http://localhost:8082/templateApi/Template/Load/,变成了http://loc-dynamicsite.114my.com:8086/api/Api/Template/Load/。
看到没,后面黑色部分是相同的, '^/template'寻找到template之前的部分(包括他自己)‘http://localhost:8082/template’替换成了target里的域名'http://loc-dynamicsite.114my.com:8086/api/'
vue中域名跨域404的原因相关推荐
- Vue中的跨域解决方案
前言 跨域是因为浏览器存在对不同源页面数据接收的限制.这种限制就是浏览器的同源策略. 同源策略是浏览器的安全机制,跨域的原理就是通过各种方式避开浏览器的安全机制 使用 在项目开发时,对跨域的概念仅限于 ...
- vue 引入pdf跨域问题怎么解决_VUE项目中的跨域问题
[摘要]跨域问题是前端开发人员比较常见的问题, 那么跨域出现的原因, 该如何解决跨域, VUE中对跨域又是怎样处理的呢 [作者]田鋆鹏 一. 前端为什么会出现跨域问题? 跨域问题是浏览器同源策略限制, ...
- Vue解决Axios跨域问题
提前声明:本文只针对使用vue-cli创建的vue项目,范围仅限于vue2 跨域 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器施加的安全限制 解决跨域 话不多说,直 ...
- Vue项目多域名跨域
在Vue项目中请求后台数据时,遇到的多域名跨域问题. 直接上代码: assetsSubDirectory: "static",assetsPublicPath: "/&q ...
- Vue项目开发过程中解决跨域问题(vue.config.js结合axios)
一.问题描述 在本地开发过程中,调用后端提供的接口获取数据将获取的数据渲染到页面中,但是浏览器报错: // 控制台报错信息 Access to XMLHttpRequest at 'http://x. ...
- H5项目中通过iframe引入语音导览解决微信jsapi关于同一级域名二级域名跨域问题解决方案
H5项目中通过iframe引入语音导览解决微信jsapi关于同一级域名二级域名跨域问题解决方案 在项目的入口文件App.js中 <iframe src="https://www.abc ...
- 解决Vue前后端跨域问题的多种方式
1 前言 本文主要介绍借助解决Vue前后端跨域问题的几种方式 说到ajax请求,就不得不说下xhr(XMLHttpRequest)了,它可以说是鼻祖,但是实际开发中,我们不会直接使用它,而是进行二次封 ...
- HTTP中的跨域请求、HTTP报文结构、状态码
目录 一.前驱知识学习 (1)请求报文 (2)响应报文 二.HTTP中的跨域请求 1. 什么是跨域请求 2.什么是同源策略 3.为什么要设置这种限制 3.1 攻击实例 3.2 攻击原理 4. 怎样取消 ...
- vue怎么实现跨域?
目录 目录 1.跨域出现的原因是:浏览器的同源策略. 2.什么是跨域? 3.解决跨域的方式: 01.Jsonp 02.nginx反向代理 03.CORS 04 vue脚手架 04-1 思路: 04-2 ...
最新文章
- 给自己看的flex布局方法
- python和工程造价_终于懂了自学造价的方法
- 一次处理ORA-06512的经验
- 我的python学习笔记全集_我的python学习笔记
- 虎记:强大的nth-child(n)伪类选择器玩法
- html select设置不选中的值,如何定义 select 默认不选中任何值
- 一道组合数学题-马拦过河卒,很精彩
- 朗逸机器人_几张动图告诉你,工业机器人无所不能!
- 7.Windows口令扫描及3389口令暴力破解
- 软件质量测试一般方法
- 微信android分身,安卓手机微信分身怎么用?微信分身版制作教程
- PHP 格式化字节大小
- AspectJ自定义注解报错:error Type referred to is not an annotation type:xxx -----IllegalArgumentException
- 项目总结 :木门app(2015.4.10 —— 2015.5.8)
- 推荐几部好看的漫画,漫迷们不容错过的动漫新番哦
- 新版正方教务网模拟登录python实现
- 南卫理公会计算机官网,南卫理工会大学
- Html网页设计-羽毛球网站设计
- python基本运算符号有哪些
- 3、Nginx系列之: location和alias的区别