码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Vue】本地使用 axios 调用第三方接口并处理跨域


    前端处理跨域

    一. 开发准备

    1. 开发工具:VScode
    2. 框架:Vue2
    3. 项目结构:vue脚手架生成的标准项目(以下仅显示主要部分)
      在这里插入图片描述
    4. 本地已搭建好的端口:8080
    5. 要请求的第三方接口:http://1.11.1.111:端口号/xxx-api/code

    注意:前端环境已搭建好,必须确保axios 已下载

    二. 需求分析

    1. 前端登录页(login - index.vue)的验证码需调用第三方的验证码接口,并将其显示
      在这里插入图片描述

    三. 跨域

    3.1 直接调用(跨域)

    1. 代码实现
    <script>
    import axios from "axios";
    export default {
    	data(){
    		return {
    		}
    	},
    	methods:{
    		fetchCode(){
    			axios.get('http://1.11.1.111:端口号/xxx-api/code').then(res=>{
    				console.log(res,"直接调用第三方接口")
    			}) 
    		}
    	}
    }
    </script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    1. 结果:跨域
      在这里插入图片描述

    3.2 解决跨域:poxy

    1. 配置 main.js
    // 跨域代码,qualityPlatform可替换为任意
    
    axios.defaults.baseURL = "/qualityPlatform"
    
    • 1
    • 2
    • 3
    1. 配置 config.js
    module.exports = {
    	dev:{
    		assetsSubDirectory: 'static',
        	assetsPublicPath: '/',
    		proxyTable: {                                     //  配置多个代理
          		'/qualityPlatform': {
          		  	  target: 'http://1.11.1.111:端口号',
          			  pathRewrite: {
          				  '^/qualityPlatform': '/'
          			  },
          			  changeOrigin: true
         		},
          		'/api': {
            		  target: 'http://localhost:80', 		// 本地后端抛出的接口
            		  secure: false,
            		  pathRewrite: { 						// 路径重写
              			  '^/api': '/' 						// 替换target中的请求地址
            		  },
            	      changeOrigin: true 					// 在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
          	    },
        	},
        	host: '0.0.0.0', 
        	port: 8080, 
        	autoOpenBrowser: false,
        	errorOverlay: true,
        	notifyOnErrors: true,
        	poll: false, 
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    1. 调用接口
    <script>
    import axios from "axios";
    export default {
    	data(){
    		return {
    			form:{
    				img:""
    			}
    		}
    	},
    	methods:{
    		fetchCode(){
    			axios.get('/xxx-api/code').then(res=>{
    				console.log(res,"直接调用第三方接口成功")
    				// 处理base64编码并展示
    				this.form.image = `data:image/jpeg;base64,${res.data.img}`;
    			}).catch(error=>{
            		console.log(error,"ERROR");
          		})
    		}
    	}
    }
    </script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    1. 调用成功
      在这里插入图片描述

    四. 遇到的问题

    1. 调用第三方接口,返回 status 为200,但返回 data 为 html 内容
      在这里插入图片描述

    2. 原因
      (1)未配置 步骤三 3.2 中 的(1);
      (2)重名
      在这里插入图片描述

  • 相关阅读:
    goalng中md5算法的4种写法及其性能比较以及源码简单分析
    Mysql 如何模糊匹配后匹配优化
    彻底解决SimpleDateFormat的线程不安全问题
    python基于轻量级卷积神经网络模型开发构建眼疾识别系统
    【附源码】计算机毕业设计JAVA药品管理系统
    深度学习---三好学生各成绩所占权重问题(3)
    LINUX如何 部署ansible
    探索图像检索:从理论到实战的应用
    Windows10不常用操作(录屏、开启超级管理员、关闭自动IP配置、Edge崩溃等)
    基于神经网络的偏微分方程求解器再度取得突破,北大&字节的研究成果入选Nature子刊
  • 原文地址:https://blog.csdn.net/weixin_47375144/article/details/136238249
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号