前端如何调用后端接口:主流方案与实操步骤

前端如何调用后端接口,主流分为Fetch原生调用、Axios库调用、XHR原生AJAX三种实现方式,前后端分离项目优先选择Axios,轻量化无依赖场景选用Fetch,老旧维护项目保留XHR;操作流程统一分为确认接口文档、处理跨域、组装请求参数、发起网络请求、捕获异常、接收解析返回数据这6步;边界条件为:浏览器同源策略会拦截跨域请求,仅GET请求可使用JSONP方案,POST请求必须依靠后端开启CORS跨域配置,同时前端直接调用接口会暴露密钥,不适用于需要保护密钥的线上生产环境,这类场景需要搭建中间服务层中转请求。

前端如何调用后端接口:三种请求方式对比

请求方式是否需要安装依赖自动JSON解析内置请求拦截器适用场景
FetchAPI不需要,浏览器原生支持不支持,需要手动调用.json()方法无,需要自行封装小型项目、纯静态页面、追求零打包体积
Axios需要通过npm安装支持,自动把响应转为JSON对象自带请求与响应拦截器中大型前后端分离项目、统一管理请求头与token
XHR(AJAX)不需要,浏览器原生支持不支持,需要手动JSON.parse解析无维护老旧jQuery项目,新项目不推荐使用

Axios是当下多数业务项目的首选。

前端如何调用后端接口:完整操作流程

第一步核对接口文档,确认请求地址、请求方法(GET/POST/PUT/DELETE)、请求头、请求入参、返回字段,这一步出错会直接导致请求无法成功。

第二步处理跨域问题,这是前后端联调最容易卡住的环节。浏览器同源策略会拦截协议、域名、端口不一致的请求,你可以让后端开启W3CCORS跨域资源共享配置,这是最稳妥的标准方案;如果仅调用第三方GET接口,也可以临时使用JSONP方案,但JSONP无法发送POST请求。

第三步组装请求内容,GET请求把参数拼接到URL地址后面,POST请求把参数放在请求体中,同时在请求头添加Content-Type:application/json;如果接口需要登录鉴权,在请求头带上Authorization令牌。

第四步编写请求代码,使用async+await语法简化异步回调,避免回调地狱。

第五步捕获网络异常,区分网络中断、4xx客户端错误、5xx服务端错误,不要只捕获成功回调,否则接口报错时页面会无响应。

第六步解析后端返回的JSON数据,把拿到的数据渲染到页面DOM节点上。

前端如何调用后端接口:两种主流代码示例

先给出Fetch原生调用代码,无需安装任何包,直接在浏览器运行。

asyncfunctiongetApiData(){try{constres=awaitfetch('https://api.example.com/user',{method:'GET',headers:{'Content-Type':'application/json'}});if(!res.ok)thrownewError('接口请求失败');constdata=awaitres.json();console.log(data);}catch(err){console.error(err);}}

再给出Axios调用示例,先执行npminstallaxios完成安装,再编写请求代码。

importaxiosfrom'axios';asyncfunctiongetUserInfo(){try{constresult=awaitaxios.post('https://api.example.com/add',{name:'测试'},{headers:{Authorization:'Bearertoken值'}});console.log(result.data);}catch(err){console.error(err.response);}}

前端如何调用后端接口:线上环境的限制条件

前端代码会完整暴露在浏览器中,如果你直接把密钥、签名明文写在前端请求代码里,很容易被抓包窃取。

线上正式环境不能直接由前端调用第三方接口,必须新增一层Node.js中间服务,由前端请求自家后端服务,再由后端服务去调用第三方接口,把敏感密钥保存在服务端,降低信息泄露风险。

同时还要控制请求频率,短时间内高频发起请求容易触发后端接口限流机制,造成请求被拒绝。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于前端如何调用后端接口的文章欢迎访问:百科