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

JS接口请求的基本方法

使用fetch进行GET请求:

fetch('https://api.example.com/data').then(response => response.json()).then(data => console.log(data)).catch(error => console.error('Error:', error));

使用fetch进行POST请求:

fetch('https://api.example.com/data', {method: 'POST',headers: {'Content-Type': 'application/json',},body: JSON.stringify({key: 'value'}),
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

使用Axios库请求

安装Axios:

npm install axios

GET请求示例:

axios.get('https://api.example.com/data').then(response => console.log(response.data)).catch(error => console.error(error));

POST请求示例:

axios.post('https://api.example.com/data', {key: 'value'}).then(response => console.log(response.data)).catch(error => console.error(error));

处理异步请求

使用async/await语法:

async function fetchData() {try {const response = await fetch('https://api.example.com/data');const data = await response.json();console.log(data);} catch (error) {console.error('Error:', error);}
}
fetchData();

设置请求头

添加自定义请求头:

fetch('https://api.example.com/data', {headers: {'Authorization': 'Bearer your_token','Custom-Header': 'value'}
});

处理跨域问题

服务器端设置CORS头:

Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type

开发环境代理配置(webpack):

devServer: {proxy: {'/api': {target: 'http://api.example.com',changeOrigin: true,pathRewrite: {'^/api': ''}}}
}

错误处理

检查HTTP状态码:

fetch('https://api.example.com/data').then(response => {if (!response.ok) {throw new Error(`HTTP error! status: ${response.status}`);}return response.json();}).then(data => console.log(data)).catch(error => console.error('Error:', error));

取消请求

使用AbortController:

const controller = new AbortController();
const signal = controller.signal;fetch('https://api.example.com/data', {signal}).then(response => response.json()).then(data => console.log(data)).catch(error => {if (error.name === 'AbortError') {console.log('Request was aborted');}});// 取消请求
controller.abort();

http://www.dtcms.com/a/360358.html

相关文章:

  • FastAPI 核心实战:精通路径参数、查询参数与数据交互
  • 第25章学习笔记|额外的提示、技巧与技术(PowerShell 实战版)
  • 蓓韵安禧活性叶酸源于上市企业生产
  • 网站漏洞早发现:cpolar+Web-Check安全扫描组合解决方案
  • 5w2h构建数据仓库与sow
  • H264几个参数说明
  • 大话 IOT 技术(4) -- 答疑篇
  • [光学原理与应用-355]:ZEMAX - 设置 - 系统检查与系统测试
  • k8s三阶段项目
  • 物理气相沉积(PVD)技术及应用现状和发展趋势
  • FreeRTOS深入理解
  • 数据库索引abc,请问查询哪些字段能命中索引
  • 平滑滤波器(Smooth Filter)的MATLAB与Verilog仿真设计与实现
  • 关于Ctrl+a不能全选的问题
  • 封装哈希表
  • 机器视觉opencv教程(四):图像颜色识别与颜色替换
  • 【开题答辩全过程】以 基于SpringBoot的流浪猫狗领养系统为例,包含答辩的问题和答案
  • C语言中如何使用NULL
  • 【Linux】系统部分——ELF文件格式与动态库加载
  • Asible管理变量和事实和实施任务控制
  • 科学研究系统性思维的方法体系:研究设计相关模版
  • 【Unity3D实例-功能-切换武器】切换武器(一)动画配置
  • IAR 用JLINK 下载代码设置步骤
  • FLEXPART 拉格朗日粒子扩散模式建模技术及研究大气污染物源-汇关系中的实践
  • 订餐后台管理系统-day06菜品分类模块
  • 工业软件领域SAAS模式为何不能得到普及?
  • 上海交大具身导航中的感知智能、社会智能和运动智能全面综述
  • 网络端口与服务对应表 - 白帽子安全参考指南
  • Android开发-设计规范
  • 安装proteus,并实现stm32仿真