当前位置: 首页 > news >正文

用哪个网站做首页好qq网站直接登录

用哪个网站做首页好,qq网站直接登录,网站建设模拟软件,二级域名做网站什么是axios axios是一款基于Promise的HTTP客户端,适用于浏览器和Node.js环境。它的特点包括: 支持浏览器和Node.js环境。支持Promise API。支持拦截请求和响应。支持取消请求。自动转换JSON数据。支持CSRF保护。 使用axios可以更方便地发送HTTP请求&…

什么是axios

axios是一款基于Promise的HTTP客户端,适用于浏览器和Node.js环境。它的特点包括:

  1. 支持浏览器和Node.js环境。
  2. 支持Promise API。
  3. 支持拦截请求和响应。
  4. 支持取消请求。
  5. 自动转换JSON数据。
  6. 支持CSRF保护。

使用axios可以更方便地发送HTTP请求,并且对请求和响应进行拦截、转换等处理。它可以在浏览器端和Node.js环境中使用,很适用于进行数据交互。

安装axios

yarn add axios

创建token工具方法

// 定义访问令牌的常量键名
export const ACCESS_TOKEN = 'access_token';// 获取访问令牌
export const getAccessToken = () => {return localStorage.getItem(ACCESS_TOKEN);
};// 设置访问令牌
export const setAccessToken = (token: string) => {localStorage.setItem(ACCESS_TOKEN, token);
};// 移除访问令牌
export const removeAccessToken = () => {localStorage.removeItem(ACCESS_TOKEN);
};// 用于模拟刷新令牌的函数,可根据实际需求替换为真实刷新逻辑
export const refreshAccessToken = async () => {return Promise.resolve('123456'); // 返回新的令牌
};

request工具方法

当然,以下是一个更具体的分步骤介绍代码块的 Markdown 博文示例:

创建 Axios 实例

首先,我们需要创建一个 Axios 实例并配置默认请求头。这个实例将用于所有的网络请求。以下是创建 Axios 实例的示例代码:

import axios, { AxiosInstance, AxiosResponse, AxiosError } from 'axios';
import { API_HOST, LOGIN_URL } from './config';// 创建一个 Axios 实例并配置默认请求头
const instance: AxiosInstance = axios.create({baseURL: API_HOST, // 设置基本 URL
});

请求拦截器

请求拦截器用于修改请求配置,例如添加身份验证标头。以下是请求拦截器的示例代码:

instance.interceptors.request.use((config) => {let { url } = config;if (!url) {throw new Error('url不能为空');}if (url.indexOf('://') === -1) {url = `${API_HOST}${url}`;}const modifiedConfig = { ...config, url };if (!(modifiedConfig.data instanceof FormData)) {modifiedConfig.headers['Content-Type'] = 'application/json';}// 如果有访问令牌,将其添加到请求头const token = getAccessToken();if (token) {modifiedConfig.headers.Authorization = `JWT ${token}`;}return config;},async (error) => Promise.reject(error),
);

响应拦截器

响应拦截器用于处理响应,包括处理错误和刷新令牌。以下是响应拦截器的示例代码:

// 响应拦截器:用于处理响应
instance.interceptors.response.use((response: AxiosResponse) => {if (response.status === 204) {return response;}return response.data;},async (error: AxiosError) => {const { response } = error;if (response?.status === 401) {try {// 尝试无感刷新tokenconst newAccessToken = await refreshAccessToken();setAccessToken(newAccessToken);const originalRequest = error.config;if (originalRequest) {originalRequest.headers.Authorization = `JWT ${newAccessToken}`;// 重新发送原始请求return axios(originalRequest);}} catch (refreshError) {removeAccessToken();// 处理未授权 (401) 响应,重定向到登录页面const redirectUri = window.location.href;let secondsToLogin: number = 5;const modal = Modal.error({title: '凭证失效',content: `你的登录凭证已失效,${secondsToLogin}s后将跳转到登录页面`,});const timer = setInterval(() => {secondsToLogin -= 1;modal.update({content: `你的登录凭证已失效,${secondsToLogin}s后将跳转到登录页面`,okText: '立即登录',afterClose: () => {clearInterval(timer);window.location.href = `${LOGIN_URL}?${stringify({redirectUri,})}`;},});});setTimeout(() => {clearInterval(timer);modal.destroy();}, secondsToLogin * 1000);}}// 处理网络错误,显示通知notification.error({message: '网络错误,请联系管理员',});return Promise.reject(error);},
);
http://www.yayakq.cn/news/531966/

相关文章:

  • 贵阳网站建设 设计可以吗wordpress 子菜单项
  • 帮做网站设计与规划作业acg二次元wordpress主题
  • 优品ppt模板免费下载网站企业信息系统定义
  • 网站设计网络公司一级消防工程师考试难度有多大
  • 广州市服务好的网站制作排名在线制作图片网站
  • 亚马逊网站网址是多少网络营销推广软件服务商
  • 网站开发招聘需要云南省建设工程投标中心网站
  • 网站建设公司如何推广婚礼策划方案
  • seo好的外贸网站店标设计logo设计
  • 想注册一个设计网站吗河南高端网站建设
  • 网站开发需要什么资质外贸网站平台
  • 湖南火电建设有限公司网站天猫与京东的网站建设管理
  • 只做公司网站方案网站做电商销售需要注册吗
  • 西宁网站建设加q479185700360网站开发
  • 手机应用软件开发工具seo报价单
  • 建设个人网站需要什么条件58网络推广
  • 网站制作企业网站抄袭别人的做可以吗
  • 个人网站是什么意思长春小学网站建设
  • 岳阳网站建设网站汕头网站建设推广哪家好
  • 怎样建设网站的步骤便宜网站建设公司
  • 有什么网站可以做外贸出口信息微网站自己怎么做的吗
  • 企业网站建设的收获wordpress 秒拍
  • 文明网站建设管理培训心得谷歌企业网站seo
  • iis ip访问网站vr全景网站怎么做
  • 传统文化网站建设附近装修设计公司
  • 暖色网站模板网站整体规划方案
  • 网站建设 风险别人网站的字体
  • 苏州定制型网站建设中小学网络云平台
  • 写网站策划书需要注意什么php开发网站的优势
  • 东莞市国外网站建设平台增城定制型网站建设