详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

目录

1. 打开浏览器开发者工具

2. 使用 Network 面板

3. 查看具体的API请求

a. Headers​

b. Payload​

c. Response​

d. Preview

e. Timing​

4. 实际操作步骤

5. 常见问题及解决方法

a. 无法看到API请求

b. 请求失败

c. 跨域问题(CORS)

作为一名后端工程师,理解前端如何调用接口、传递参数以及接收返回值是非常重要的。下面将详细介绍如何通过浏览器开发者工具(F12)查看和分析这些信息,并附带图片案例帮助你更好地理解。

1. 打开浏览器开发者工具

按下 F12 或右键点击页面选择“检查”可以打开浏览器的开发者工具。常用的浏览器如Chrome、Firefox等都内置了开发者工具。下面是我选择我的一篇文章,打开开发者工具进行演示。

2. 使用 Network 面板

在开发者工具中,Network 面板用于监控和分析所有网络请求。以下是 Network 面板中的几个重要选项及其含义:

Name:显示请求的资源名称或API路径。

Status:HTTP状态码,表示请求的结果:

200 OK:成功响应。

400 Bad Request:客户端请求有误。

401 Unauthorized:未授权。

403 Forbidden:禁止访问。

404 Not Found:资源未找到。

500 Internal Server Error:服务器内部错误。

Type:资源类型,例如:

xhr(XMLHttpRequest)

fetch(现代的API请求方式)

script(JavaScript文件)

css(样式表)

img(图片)

Initiator:发起请求的源头,可能是JavaScript代码、HTML标签或其他资源。

Size:请求和响应的大小,包括头部和主体。

Time:请求的耗时,从发起请求到接收到完整响应的时间。

Waterfall:以瀑布图的形式展示每个请求的时间线,帮助你了解请求的顺序和延迟情况。

3. 查看具体的API请求

当你想查看某个具体的API请求时,可以在 Network 面板中找到对应的请求行,然后点击它展开详细信息。例如我打开我的一篇文章,查看左侧的“热门文章”的API请求,以下是一些关键部分:

a. Headers

包含请求头和响应头信息,如:

Content-Type:指定请求或响应的内容类型(如application/json)。

Authorization:用于身份验证的令牌或凭据。

Cookie:存储在客户端的会话信息。

User-Agent:标识发送请求的浏览器或客户端。

b. Payload

显示请求体的内容,即前端传递给后端的参数。对于不同类型的请求,Payload内容有所不同:

POST/PUT 请求:通常为JSON格式的数据,例如:

 { "username": "example", "password": "secret" }

GET 请求:参数通常作为URL查询字符串的一部分,例如:

 /api/users?name=John&age=30
c. Response

下面是与之相对应的前端展示:

显示后端返回的数据,通常为JSON格式。例如:

{ "id": 1, "name": "John Doe", "email": "[email protected]" }
d. Preview

以更友好的格式展示返回数据,便于阅读。对于复杂的嵌套结构,Preview 会自动格式化并提供折叠功能

e. Timing

展示请求各个阶段的时间消耗,帮助优化性能。具体分为以下几个阶段:

Queueing:请求排队等待的时间。

Stalled:请求被阻塞的时间。

DNS Lookup:解析域名的时间。

Initial Connection:建立TCP连接的时间。

SSL:SSL/TLS握手的时间。

Request Sent:发送请求的时间。

Waiting (TTFB):等待第一个字节响应的时间。

Content Download:下载响应内容的时间。

4. 实际操作步骤

假设你有一个前端页面调用了后端API来获取用户信息,你可以按照以下步骤进行查看:

打开浏览器开发者工具(F12),切换到 Network 标签页。

刷新页面或触发相关操作(如点击按钮),确保API请求被发送。

在 Network 列表中找到对应的API请求(例如/api/user)。

点击该请求行,查看详细的请求和响应信息,包括:

请求方法(GET/POST等)

请求参数(Payload)

返回结果(Response)

5. 常见问题及解决方法
a. 无法看到API请求

原因:可能你在触发请求之前没有打开开发者工具,或者过滤器设置不当。

解决方法:确保在触发请求之前已经打开了开发者工具,并且没有过滤掉API请求(可以通过输入框顶部的过滤器调整)。

b. 请求失败

原因:可能是客户端请求有误或服务器端出现问题。

解决方法:检查 Status 列是否显示了非2xx的状态码,查看 Response 中是否有错误信息。常见的错误包括:

400 Bad Request:检查请求参数是否正确。

401 Unauthorized:确认身份验证信息是否有效。

500 Internal Server Error:查看服务器日志以排查问题。

c. 跨域问题(CORS)

原因:浏览器出于安全考虑,默认不允许跨域请求。

解决方法:检查后端是否正确配置了CORS策略。确保响应头中包含以下字段:

Access-Control-Allow-Origin:允许的源地址。

Access-Control-Allow-Methods:允许的HTTP方法。

Access-Control-Allow-Headers:允许的请求头。

Read more

前端大数据导出优化:解决Chrome内存崩溃的实战方案

前端大数据导出优化:解决Chrome内存崩溃的实战方案

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[[email protected]] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? * 专栏导航: 码农阿豪系列专栏导航 面试专栏:收集了java相关高频面试题,面试实战总结🍻🎉🖥️ Spring5系列专栏:整理了Spring5重要知识点与实战演练,有案例可直接使用🚀🔧💻 Redis专栏:Redis从零到一学习分享,经验总结,案例实战💐📝💡 全栈系列专栏:海纳百川有容乃大,可能你想要的东西里面都有🤸🌱🚀 目录 * 前端大数据导出优化:解决Chrome内存崩溃的实战方案 * 引言 * 问题分析 * 1. 为什么 Chrome 会崩溃,而 QQ 浏览器正常? * 2. 常见崩溃场景

实战干货】打破次元壁:如何实现 Web 端与 AutoCAD 桌面端的双向通信与自动化绘图

前言 在工程建设与制造业数字化转型的浪潮中,我们经常面临一个架构难题:业务流在 Web 端(SaaS 系统、AI 生成内容),而生产流在桌面端(AutoCAD、Revit)。 如何将 Web 端生成的数据(如设计说明、BOM 表、AI 生成的布局方案)无缝传输到 AutoCAD 并自动生成图纸?传统的做法是“导出 Excel/JSON -> 人工打开 CAD -> 导入插件”,效率低下且割裂。 本文将分享我在最近一个项目中采用的**“本地伴随服务(Local Sidecar Server)”**技术方案。通过在 AutoCAD 插件内部嵌入轻量级 Web Server,实现了 Web 页面点击按钮,

【踩坑记录】使用 Layui 框架时解决 Unity WebGL 渲染在 Tab 切换时黑屏问题

【踩坑记录】使用 Layui 框架时解决 Unity WebGL 渲染在 Tab 切换时黑屏问题

【踩坑记录】使用 Layui 框架时解决 Unity WebGL 渲染在 Tab 切换时黑屏问题 在开发 Web 应用时,尤其是集成了 Unity WebGL 内容的页面,遇到一个问题:当 Unity WebGL 渲染内容嵌入到一个 Tab 中时,切换 Tab 后画面会变黑,直到用户点击黑屏区域,才会恢复显示。 这个问题通常是因为 Unity 渲染在 Tab 切换时被暂停或未能获得焦点所致。 在本文中,我们将介绍如何在使用 Layui 框架时,通过监听 Tab 切换事件并强制 Unity WebGL 渲染恢复,来解决这一问题。 1. 问题描述 当 Unity WebGL 内容嵌入到页面中的多个

前端小练习——星辰宇宙(JS没有上限!!!)

前端小练习——星辰宇宙(JS没有上限!!!)

前言:在刚开始学习前端的时候,我们会学习到前端三件套中的JavaScript,可能那时候读者没有觉得JavaScript这个语言有多么的牛逼,本篇文章将会使用一个炫酷的案例来刷新你对JavaScript这个语言的认知与理解。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-ZEEKLOG博客 先让我们看一下最终的结果: 在开始讲解这个炫酷的案例之前,先让我们了解一下本案例所需的前置知识: Three.js:一个用于创建和显示3D图形的JavaScript库。代码中导入了Three.js的核心库和轨道控制库(OrbitControls),用于处理3D场景的创建和相机控制。WebGL:用于在网页中绘制3D图形的底层API。Three.js封装了WebGL,使得3D渲染变得更简单。模块化 JavaScript:使用 ES6 的模块导入语法 (import) 引入外部库,使代码结构更加清晰。着色器编程:自定义顶点和片段着色器,通过 onBeforeCompile 方法替换默认着色器,控制点的大小、颜色和运动效果。缓冲几何体: