axios二次封装(详细+跨域问题)

这篇具有很好参考价值的文章主要介绍了axios二次封装(详细+跨域问题)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一,为什么要对axios进行二次封装?
答:主要是要用到请求拦截器和响应拦截器;
请求拦截器可以在发请求之前可以处理一些业务
响应拦截器当服务器数据返回以后,可以处理一些事情

二,axios的二次封装
2.1 安装axios

在当前的项目路径下安装

cnpm install --save axios

安装成功
axios二次封装(详细+跨域问题)
2.2 通常情况下,项目都有一个api文件夹(axios二次封装的文件夹)
a.创建一个api文件夹
b.在api文件夹下创建request.js(用于书写axios二次封装的代码)

axios二次封装(详细+跨域问题)
c.在request.js书写axios二次封装的代码

//对axios进行二次封装,将刚才下载好的axios导入进来
import axios from "axios";

//1.利用axios对象的方法create,去创建一个axios实例
//2.requests就是axios,只不过稍微配置一下
const requests = axios.create({
	//配置对象
	//基础路径,发请求的时候,路径当中会出现api,不用你手写
	baseURL:'/api',
	//请求时间超过5秒
	timeout:5000
});
 //请求拦截器:在发请求之前,请求拦截器可以检测到,可以在请求发出去之前做一些事情
 requests.interceptors.request.use((config)=>{
 	//config是个配置对象,对象里面有一个属性很重要,headers请求头
 	return config;		
 });
 
 //响应拦截器:包含两个函数(一个是成功返回的函数,一个是失败的返回的函数)
 requests.intercetors.response.use((res)=>{
	//成功的回调函数:服务器响应数据回来以后,响应拦截器可以检测到,可以做一些事情。
	return res.date;	
},(erroe)=>{
	return promise.reject(new Error('faile'))
});
//对外暴露requests(axios的二次封装)
export default requests;

d.对api进行统一管理 (请求的接口比较多,需要统一管理)

1.在api文件夹新建一个index.js,用于管理接口
2.在index.js书写代码

//导入刚才写好的axios二次封装的requests
import requests from "./request";
//三级联动接口
///api/product/getBaseCategoryList get 无参数
//发请求:axios发请求返回结果promise对象
export const reqCategoryList = ()=>{
	//由于前面配置了基础路径,所以不用加/api
	return requests({url:'/product/getBaseCategoryList',method:'get'}
});

3.跨域问题
什么是跨域:协议,域名,端口号不同请求,称之为跨域
例:http://localhost:8000/#/home —前端项目的本地服务器
http://39.98.123.211 —调取数据的后台服务器
直接调取后台服务器数据的话,会出现404

4.解决跨域问题(3种:JSONP,CROS和代理)

我们用代理解决,在vue.config.js配置如下代码
axios二次封装(详细+跨域问题)

//代理跨域
  devServer:{
    proxy: {
      "/api": {
      //后台服务器地址
        target: "http://39.98.123.211",
       
      }
    }
  }

完成文章来源地址https://www.toymoban.com/news/detail-455062.html

到了这里,关于axios二次封装(详细+跨域问题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TCP为什么需要三次握手进行连接,二次或四次不可以吗?

    为了确认双方具有接收和发送的能力。 1. 可以阻止重复历史连接的初始化(主要原因)。 2. 可以同步双方的初始序列号。 3. 可以避免资源的浪费。 1. 为了防止旧的重复连接初始化造成混乱。 当客户端发送了一个 SYN 报文后,突然宕机了,并且这个 SYN 报文还被网络阻塞了

    2024年02月16日
    浏览(47)
  • 【axios】-- axios 二次封装

    如baseUrl,超出时间等 出于权限和安全考虑的密钥设置到请求头 主要针对于错误的情况做全局统一处理 把对接口的请求封装为一个方法 例子

    2024年02月09日
    浏览(28)
  • 存储过程为什么使用DELIMITER $$,存储过程的详细运用解释

    这是正确的存储过程写法,可以成功执行,相比较上图的报错,增加了DELIMITER,简单解释下这个命令的用途,在MySQL中每行命令都是用“;”结尾,回车后自动执行,在存储过程中“;”往往不代表指令结束,马上运行,而DELIMITER原本就是“;”的意思,因此用这个命令转换一

    2024年01月25日
    浏览(31)
  • 为什么现在原生家庭的问题这么严重?

    匿名用户 191 人赞同了该回答 换一个玄学的角度来看这个问题,之前看b站,有一个up主说,中国有历史记载的人口数一直都很稳定,7-8千万到1亿左右,明朝2亿,清朝到民国算是增长比较多的,有4亿,但是从开国到现在增长了10亿,从轮回的角度来讲,哪来那么多的人来转世

    2024年02月13日
    浏览(51)
  • HTTPS工作过程,国家为什么让http为什么要换成https,Tomcat在MAC M1电脑如何安装,Tomcat的详细介绍

    目录 引言 一、HTTPS工作过程 二、Tomcat 在访达中找到下载好的Tomcat文件夹(这个要求按顺序) zsh: permission denied TOMCAT的各部分含义: 在密码中一般是:明文+密钥-密文(加密) ,密文+密钥-明文(解密) 那么为什么大家放弃了原有的http换为https呢? 这我们就要先介绍一下H

    2024年02月08日
    浏览(42)
  • axios二次封装

    目录 第一章、前言 1.1 axios是什么 1.2 axios二次封装的原因 1.3 axios的特性 第二章、axios的二次封装 2.1 axios安装 2.2 axios封装一般步骤 2.3 axios封装常用的配置项 2.4 使用封装的axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,简单的理解就是ajax的封装 在使用Vue.js框架开发

    2024年02月07日
    浏览(46)
  • axios的二次封装

    1 axios是干什么的? XMLHttpRequest、jq、fetch、axios都是用来向服务器端发送请求,并获得响应 2 为什么要进行二次封装axios? 为了封装请求拦截器,响应拦截器 请求拦截器:可以在发送请求之前可以处理一些业务 响应拦截器:当服务器数据返回以后,可以处理一些事情 在src下创

    2023年04月12日
    浏览(76)
  • axios 二次封装

    基本上每一个项目开发,都必须要二次封装 axios。主要是为了减少重复性工作,不可能每一次发起新请求时,都要重新配置请求域名、请求头 Content-Type、Token 等信息。所以需要把公用的部分都封装成一个函数,每次调用的时候只需要传入变化的参数。 :::warning 注意 基于上个

    2024年02月11日
    浏览(40)
  • “为什么是三次握手”与“为什么是三次握手,却是四次挥手”其实是不同的问题

    “为什么是三次握手?” 这个问题言下之意其实在问:“为什么不是0次、1次、2次、4次甚至更多次握手”。 确保双方的 发送能力 和 接收能力 都是好的 。 该回答下的一评论:其实很简单, 1.a-b, 这个时候没有任何状态, 2. b-a, b给a发东西, 说明收到了a的东西, 证明了a的

    2024年02月10日
    浏览(41)
  • 0-1背包问题思路分析,重点解释一维dp数组的01背包问题为什么要倒序遍历背包,以及为什么不能先遍历背包,只能先遍历物品

    对0-1背包问题的二维dp数组以及一维dp数组的思路分析 来源:代码随想录 link 本文是我对01背包问题的理解 ,在本文中具体分析dp数组的形成过程,最核心的地方就是我对每种情况下的01背包问题给出了代码运行结果,便于读者理解。 重点解释了为什么一维dp数组的01背包问题

    2024年02月03日
    浏览(78)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包