vue使用axios解决跨域_vue前端解决跨域的方法

vue使用axios解决跨域_vue前端解决跨域的方法工具版本:【vue-V】:2.9.6ide工具:VSCode/Idea前提:我们前端vue工程需要单独部署一、本地使用命令运行跨域问题。外网访问的地址:https://www.runoob.com/try/ajax/json_demo.json本地springboot接口访问的地址:http://192.168.3.12:8081/register/getSmsCode/1234567891、axios访问的代码: created(){ const_this=this

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

工具版本:
【vue -V】:2.9.6
ide工具:VSCode / Idea

前提:我们前端vue工程需要单独部署

一、本地使用命令运行跨域问题。
外网访问的地址:https://www.runoob.com/try/ajax/json_demo.json
本地springboot接口访问的地址:http://192.168.3.12:8081/register/getSmsCode/123456789

1、axios访问的代码:

	created(){ 
   
		  const _this = this
		  this.$axios
		  .get('/try/ajax/json_demo.json')
		  .then(response => (
			console.log('请求成功'),
			console.log(response),
			_this.msg = response.data

			))
		  .catch(function (error) { 
    // 请求失败处理
			console.log(error);
		  });

		  //发送本地springboot请求,本机的地址:192.168.3.12
		  this.$axios
		  .get('/register/getSmsCode/123456789')
		  .then(resp => (
			console.log('请求本地接口OK'),
			console.log(resp),
			_this.springStr = resp.data

			))
		  .catch(function (error) { 
    // 请求失败处理
			console.log("请求本地接口失败");
		  });
	  }
		

截图如下:
在这里插入图片描述
备注:需要在main.js中全局注册

importaxios from 'axios'
Vue.prototype.$axios = axios    //全局注册,使用方法为:this.$axios

2、修改assetsPublicPath配置
配置 config—index.js中的build模块
将assetsPublicPath: ‘/’, 修改为 assetsPublicPath: ‘./’,
截图如下:
在这里插入图片描述
打包后的index.html路径为下面:

<script type=text/javascript src=./static/js/vendor.096d28cd4f5da166f9ce.js>

访问地址:http://localhost:8080/
点击button跳转页面后的地址:http://localhost:8080/#/test

备注:这个/test是从首页的button跳转过来的 【this.$router.push(’/test’)】

3、修改proxyTable配置

		assetsSubDirectory: 'static',
		assetsPublicPath: '/',
		proxyTable: { 
   
		  '/try': { 
   
			target:'https://www.runoob.com', // 你请求的第三方接口
			changeOrigin:true, // 在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
		  },
		  '/register': { 
   
			target:'http://192.168.3.12:8081', // 本地的springboot接口
			changeOrigin:true, //
		  }

		},

截图如下:
在这里插入图片描述
4、测试运行:
我们通过【npm run dev】启动我们的服务,通过【http://localhost:8080】就可以访问。

我们本机可以访问,但是在其它的主机上访问拒绝(使用nginx部署不会有这个问题)
	设置config---index.js中的
		host: 'localhost', // can be overwritten by process.env.HOST
	为:
		host: '0.0.0.0', // can be overwritten by process.env.HOST

备注,使用proxyTable只能解决本地跨域问题。如果部署到nginx就不会

二、部署到nginx配置。(在window环境中)
nginx版本:nginx version: nginx/1.19.0
启动nginx
直接在cmd中运行 nginx,不报错就启动了。
【tasklist|findstr “nginx”】可以查看是否启动过
结束服务【taskkill /f /im nginx.exe】

打包【npm run build】,生成dist文件夹,将dist里面的文件复制到nginx目录中【.../nginx/html/vue/】

配置nginx.conf文件
server {
    listen       8888;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   html;
        index  index.html index.htm;
    }

	location /try {			
		proxy_pass https://www.runoob.com;	//internet api
	}
	
	location /register {			
		proxy_pass http://192.168.3.12:8081; // local spring boot api
	}
	
访问地址:【http://localhost:8888/vue/#/】vue就是nginx里面创建的目录
点击button,可以正常axios请求(外网和本地的springboot接口)

本地的nginx配置如下图:
在这里插入图片描述
运行结果如下图:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194869.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 大富豪3辅助器_加油站大亨作弊

    大富豪3辅助器_加油站大亨作弊   开心001最近新增加了一个功能:超级大亨,开始那几天没有外挂能进行操作,自己也很感兴趣,就动了编写一个外挂练习的念头。网上最早的一篇讲解开心网外挂的是http://www.turbozv.com/read.php/838.htm,写得很详细。   首先要分析下超级大亨的游戏赚钱手段:   1.每4小时登录本组件1次,将获得一定的资金奖励;   2.物品的市场价格会不断浮

    2025年9月4日
    5
  • 技术解析:阿里云 AnalyticDB 如何实现全球性能第一

    技术解析:阿里云 AnalyticDB 如何实现全球性能第一简介: 北京时间2020年5月4日,TPC官网正式公布,阿里云自研云原生数据仓库AnalyticDB通过严苛的TPC-DS全流程测试,性能较前世界纪录提升29%,单位成本仅为其1/3,再次成为全球性能领先的数据仓库。本文将对AnalyticDB进行全面解析,详细阐述其技术架构及存储和查询技术,并对AnalyticDB的下一步发展做出展望。前言随着云时代全面到来,企业数据需求不断变化,从传统的BigData逐渐向FastData演进,主要表现在如下

    2022年9月17日
    2
  • 海贼王

    海贼王★海贼王简介  日本国民级超人气动漫作品《ONEPIECE》,简称OP(1997-现在)  【原名】ONEPIECE——十多年来日本的统治级漫画,单行本十年销量冠军,初版销量已超1亿5千8百万册,09年4月再版销量1千7百万册,总销量1亿7500万册,成为日本史上漫画单行本销量最高和初版销量最高的纪录最快到本书一亿保持者,本书销量第一。  【译名】海贼王、航海王、海盗路飞

    2022年7月12日
    49
  • 【已解决】org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp

    错误信息很明确,就是没有找到index_jsp这个class文件。Jsp本质上就是一个servlet,也就是一个java类,tomcat通过运行编译好的class文件来显示jsp页面,而翻译jsp文件为java文件的引擎也就是tomcat的jasper。但是我的tomcat内部是没有缺少这部分jar包内容的。于是便有了我的第一次尝试。观察是不是jar包冲突了。因为项目本身引入了servlet-api、jsp-api包可能会和tomcat自带的包冲突,当然不排除也可能是其他包冲突。利用mavenhe

    2022年4月6日
    88
  • Java初学之华容道游戏

    Java初学之华容道游戏

    2021年8月30日
    73
  • 三款专业的ocr文字识别工具[通俗易懂]

    三款专业的ocr文字识别工具[通俗易懂]ocr文字识别是办公软件中不可缺少的工具,那么哪款好用呢?​这里为大家整理了三款比较好用的工具,不仅可以进行文字识别,有的还具有在线翻译的功能,简直不要太好用啦!第一款:TextScanner激活

    2022年7月2日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号