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


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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Linux#使用ll命令

    Linux#使用ll命令     ubuntu和mac环境下,没有ll命令,对于习惯在Linux环境使用ll命令的开发人员来说,着实不便。     介绍两种添加ll命令的方法:     一、设置别名        1、编辑~/.bashrc mac环境为~./bash_profile             sudovim~/.bash_profile        2、…

    2022年9月16日
  • 使用instsrv.exe和srvany.exe创建windows服务[通俗易懂]

    使用instsrv.exe和srvany.exe创建windows服务[通俗易懂]srvany.exe是MicrosoftWindowsResourceKits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行。也就是说srvany只是其注册程序的服务外壳,这个特性对于我们来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。         将srvany.e

    2022年6月2日
  • NTP时间服务器简介

    NTP(NetworkTimeProtocol)网络时间协议,工作在UDP的123端口上。是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(局域网上与标准间差小于1毫秒,互联网上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP服务器NTP服务器提供准确时间,首先要有准确的时间来源,这一时间…

    2022年4月9日
  • openwrt旁路由的设置「建议收藏」

    openwrt旁路由的设置「建议收藏」1:旁路由必须和主路由在同一网段2:旁路由的网关必须指向主路由3:防火墙开启IP动态伪装

    2022年6月6日
  • busybox如何安装(wii安装说明)

    转自http://blog.csdn.net/denlee/archive/2008/04/06/2254192.aspx
       这几天在使用Busybox制作FS2410开发板的CRAMFS文件系统,由于开始下载的是Busybox1.10,每次下载到开发板中,然后启动总是出现”Failedtoexecute/linuxrc. Attemptingdefaults…“的错误。到网上查了大量的资料,并做了大量的实验,发现都不能成功。今天下午突然发现一个能够仿真arm的软件

    2022年4月15日

发表回复

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

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