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的原因相关推荐

  1. Vue中的跨域解决方案

    前言 跨域是因为浏览器存在对不同源页面数据接收的限制.这种限制就是浏览器的同源策略. 同源策略是浏览器的安全机制,跨域的原理就是通过各种方式避开浏览器的安全机制 使用 在项目开发时,对跨域的概念仅限于 ...

  2. vue 引入pdf跨域问题怎么解决_VUE项目中的跨域问题

    [摘要]跨域问题是前端开发人员比较常见的问题, 那么跨域出现的原因, 该如何解决跨域, VUE中对跨域又是怎样处理的呢 [作者]田鋆鹏 一. 前端为什么会出现跨域问题? 跨域问题是浏览器同源策略限制, ...

  3. Vue解决Axios跨域问题

    提前声明:本文只针对使用vue-cli创建的vue项目,范围仅限于vue2 跨域 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器施加的安全限制 解决跨域 话不多说,直 ...

  4. Vue项目多域名跨域

    在Vue项目中请求后台数据时,遇到的多域名跨域问题. 直接上代码: assetsSubDirectory: "static",assetsPublicPath: "/&q ...

  5. Vue项目开发过程中解决跨域问题(vue.config.js结合axios)

    一.问题描述 在本地开发过程中,调用后端提供的接口获取数据将获取的数据渲染到页面中,但是浏览器报错: // 控制台报错信息 Access to XMLHttpRequest at 'http://x. ...

  6. H5项目中通过iframe引入语音导览解决微信jsapi关于同一级域名二级域名跨域问题解决方案

    H5项目中通过iframe引入语音导览解决微信jsapi关于同一级域名二级域名跨域问题解决方案 在项目的入口文件App.js中 <iframe src="https://www.abc ...

  7. 解决Vue前后端跨域问题的多种方式

    1 前言 本文主要介绍借助解决Vue前后端跨域问题的几种方式 说到ajax请求,就不得不说下xhr(XMLHttpRequest)了,它可以说是鼻祖,但是实际开发中,我们不会直接使用它,而是进行二次封 ...

  8. HTTP中的跨域请求、HTTP报文结构、状态码

    目录 一.前驱知识学习 (1)请求报文 (2)响应报文 二.HTTP中的跨域请求 1. 什么是跨域请求 2.什么是同源策略 3.为什么要设置这种限制 3.1 攻击实例 3.2 攻击原理 4. 怎样取消 ...

  9. vue怎么实现跨域?

    目录 目录 1.跨域出现的原因是:浏览器的同源策略. 2.什么是跨域? 3.解决跨域的方式: 01.Jsonp 02.nginx反向代理 03.CORS 04 vue脚手架 04-1 思路: 04-2 ...

最新文章

  1. 给自己看的flex布局方法
  2. python和工程造价_终于懂了自学造价的方法
  3. 一次处理ORA-06512的经验
  4. 我的python学习笔记全集_我的python学习笔记
  5. 虎记:强大的nth-child(n)伪类选择器玩法
  6. html select设置不选中的值,如何定义 select 默认不选中任何值
  7. 一道组合数学题-马拦过河卒,很精彩
  8. 朗逸机器人_几张动图告诉你,工业机器人无所不能!
  9. 7.Windows口令扫描及3389口令暴力破解
  10. 软件质量测试一般方法
  11. 微信android分身,安卓手机微信分身怎么用?微信分身版制作教程
  12. PHP 格式化字节大小
  13. AspectJ自定义注解报错:error Type referred to is not an annotation type:xxx -----IllegalArgumentException
  14. 项目总结 :木门app(2015.4.10 —— 2015.5.8)
  15. 推荐几部好看的漫画,漫迷们不容错过的动漫新番哦
  16. 新版正方教务网模拟登录python实现
  17. 南卫理公会计算机官网,南卫理工会大学
  18. Html网页设计-羽毛球网站设计
  19. python基本运算符号有哪些
  20. 3、Nginx系列之: location和alias的区别

热门文章

  1. 如何下载维基百科2010和2011数据集
  2. 基于文本服务框架的拼音输入法研究与实现
  3. 【软考-中级】系统集成项目管理工程师-计算题
  4. 第六次大灭绝还远吗?––读《大灭绝时代》
  5. Xcode 7 Bitcode的工作流程及安全性评估
  6. OilRig又瞄准了中东电信组织,并在其代码库中增加了带有隐写术的新型C2通道(上)
  7. keras.layers.Reshape方法
  8. 学习笔记 - 预祝CSDN 1024程序猿节日圆满成功
  9. Github css加载失败,样式混乱解决办法
  10. 整理C/C++中的64位整型