关于vue-cli3中配置请求跨域的问题

根据Vue CLI3官方文档,

需要在vue.config.js文件中配置devServer.proxy选项来解决跨域问题。

1.关于vue.config.js文件

此文件在vue-cli3中不会自动生成,需要手动在项目根目录下创建。

2.配置devServer.proxy选项

以豆瓣的电影接口为例,进行如下配置。

  1. proxy中的/j/search_subjects代表匹配api的路径,当命中请求中的url时进入这个代理,进行跨域请求;
  2. target代表想要跨域的目标url;
  3. changeOrigin:true代表允许跨域;
  4. pathRewrite:代表当匹配到上面的路径/j/search_subjects时需要在target后面拼接什么路径;
module.exports = {devServer: {proxy: {'/j/search_subjects': {target: 'https://movie.douban.com',changeOrigin: true,pathRewrite: {'^/j/search_subjects': '/j/search_subjects'}}}}
}

3.在发起请求时:

this.axios.get("/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&page_limit=5&page_start=0").then(response => {console.log(responses);})

可以看到,当在此发起get请求时,在上面的配置文件中匹配到了请求url中的“/j/search_subjects”,此时配置就会生效,把这个请求拼接到上面的target后面,请求不同域中远端的资源。

而此时打开浏览器开发者模式,通过network可以看到,

这个请求的路径显示为:http://localhost:8080/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&page_limit=5&page_start=0,

而实际请求的地址却是:https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&page_limit=5&page_start=0

这就是实际解决跨域的方式,通过把域名修改来达到跨域的目的,而实际访问的路径却是另一个域名的资源,这就是通过proxy来实现跨域的方法。

关于vue-cli3中配置请求跨域的问题相关推荐

  1. 【全栈项目上线(vue+node+mongodb)】06.nodejs服务上线(生产环境前后分离的vue项目中怎么解决跨域问题)...

    以下操作使用下面项目为案例 https://github.com/itguide/vnshop ## 启动node服务 克隆好项目后记得把依赖包安装好 npm i 使用 node 启动node服务 c ...

  2. vue php axios 跨域,在vue项目中,使用axios跨域处理

    下面我就为大家分享一篇在vue项目中,使用axios跨域处理,具有很好的参考价值,希望对大家有所帮助. 跨域,一个很是让人尴尬的问题,有些人可以在后台中设置请求头,但是很多前端并不具备后台的知识,并无 ...

  3. vue php跨域,Vue 项目中遇到的跨域问题及解决方法(后台php)

    问题描述 前端 vue 框架,后台 php,百度跨域问题后台加这段代码 header("Access-Control-Allow-Origin: *"); 加了之后报这个错: Th ...

  4. vue-cli4.x 中 配置允许跨域请求

    在项目根目录下创建vue.config.js文件: vue.config.js: module.exports = {devServer: {host: 'localhost',port: 8080, ...

  5. 解决uniapp调试过程中的请求跨域和环境配置

    1. uniapp在前后台分离开发中,调试请求接口时,出现跨域问题. 2. 跨域原因:由于浏览器同源策略,即:端口号.域名.协议.IP地址必须一致,否则请求将被浏览器拦截. 3.  解决方法:服务器之 ...

  6. 解决vue项目中的前端跨域问题

    什么是跨域 正常情况下,我们使用ajax请求的数据都在自己的服务器上.但在一些特定的场景中,我们需要获取到别人的服务器上的数据,也就是在自己的服务器中的ajax要请求到别人的服务器的网址,这就是跨域. ...

  7. jq中ajax请求跨域,用JQuery实现简单的Ajax跨域请求

    前一阵发过一篇利用ExtJs的ScriptTagProxy实现Ajax跨域请求的文章,这几天看了一下Jquery,发现如果用JQuery中的getScript其实更简单(jquery 1.2.6版本) ...

  8. jq中ajax请求跨域,jquery+ajax实现跨域请求的方法

    本文实例讲述了jquery+ajax实现跨域请求的方法.分享给大家供大家参考.具体实现方法如下: 说明:这里的dataType 为  "jsonp"  :type 只能为 GET ...

  9. vue配置解决跨域问题

    我们在使用vue时,经常要遇到跨域的问题,其实这个问题很好解决,只需我们在vue-cli中配置一下即可. 实现跨越请求: 在config文件夹下找到index.js proxyTable: {&quo ...

最新文章

  1. 在vue中使用Element-UI
  2. Linux环境编程--多线程
  3. Flutter开发之数据存储-1-SharedPreferences(32)
  4. mysql 临时列_mysql – 在SQL中添加一个临时列,其中值取决于另一列
  5. OpenCV遮罩相机的实例(附完整代码)
  6. 邮件服务 php,PHP基础-邮件服务
  7. CenterOS yum 使用
  8. 智能优化算法:适应度相关优化算法 - 附代码
  9. 极速办公(ppt)如何插入超链接
  10. C# Activator的用法
  11. 虎胆熊威2中文版体验
  12. python倒背如流_python基本操作(五)
  13. 安卓版的java程序代码
  14. 用友企业空间 - http://upesn.com
  15. BZOJ刷题记录---提高组难度
  16. 基于单片机甲醛浓度监测系统仿真设计-毕设课设
  17. python从入门到住院_python从入门到入土教程(1)——入门课
  18. 中华英才网裁员,五成员工可拿(N+3)*月薪的离职补偿
  19. app inventor分析
  20. 人工智能和人类智能的辩证关系

热门文章

  1. [转载] Java字符串分割方法
  2. lvs负载均衡—DR模式
  3. antd table设置表格一个单元格的字体颜色_alireacttable:高性能 React 表格组件
  4. linux文本运行层次,Linux基础知识之---文件系统层级结构
  5. php数据类型_PHP数据类型能力问题和解答
  6. python字符串转义序列_Python | 忽略字符串中的转义序列
  7. java 根据类名示例化类_Java即时类| getEpochSecond()方法与示例
  8. Java 18 正式发布,默认 UTF-8,finalize 被弃用,别再乱用了!
  9. 最新版MySQL在MacOS上的实践!
  10. 面试官问你MySQL的优化,看这篇文章就够了