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

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

目录

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

基于 Rust 与 DeepSeek V3.2 构建高性能插件化 LLM 应用框架深度解析

基于 Rust 与 DeepSeek V3.2 构建高性能插件化 LLM 应用框架深度解析

前言 随着大语言模型(LLM)技术的飞速迭代,应用开发范式正经历从"单一脚本调用"向"复杂系统工程"的转变。在构建企业级 LLM 应用时,开发者面临的核心挑战在于如何平衡系统的稳定性与灵活性:既要适配快速更迭的模型接口(如 DeepSeek V3.2),又要满足多样化的业务场景(如代码审计、日志分析、运维自动化)。 本文将深入剖析如何利用 Rust 语言强大的类型系统与所有权机制,结合 DeepSeek V3.2 强大的推理能力,构建一个高内聚、低耦合的插件化 LLM 应用框架。该架构通过定义清晰的 Trait 边界,实现了核心逻辑与业务实现的物理隔离,确保了系统的可扩展性与类型安全。 一、 架构设计理念与分层模型 传统的大模型应用往往将 API 调用、提示词工程(Prompt

By Ne0inhk
Spring IoC 与 DI 核心知识点综合测试题

Spring IoC 与 DI 核心知识点综合测试题

3.3.1 方法注解要配合类注解使用 在 Spring 框架的设计中,方法注解 @Bean 要配合类注解才能将对象正常的存储到 Spring 容器中,如下代码所示: @Component public class BeanConfig { @Bean public User user(){ User user = new User(); user.setName("zhangsan"); user.setAge(18); return user; } } 再次执行以上代码,运行结果如下: 3.3.2 定义多个对象 对于同一个类,如何定义多个对象呢?比如多数据源的场景,类是同一个,但是配置不同,指向不同的数据源。 我们看下@Bean的使用: @Component

By Ne0inhk
掌控消息全链路(4)——RabbitMQ/Spring-AMQP高级特性详解之事务与消息分发

掌控消息全链路(4)——RabbitMQ/Spring-AMQP高级特性详解之事务与消息分发

🔥我的主页:九转苍翎⭐️个人专栏:《Java SE》《Java集合框架系统精讲》《MySQL高手之路:从基础到高阶》《计算机网络》《Java工程师核心能力体系构建》《RabbitMQ理论与实践》天行健,君子以自强不息。 1.事务 AMQP(高级消息队列协议)实现了事务机制,主要用于确保消息的原子性发布和确认。换言之,它允许你将多个操作(如发送消息、确认消息)绑定在一起,要么全部成功,要么全部失败 发送消息 @RestController@RequestMapping("/producer")publicclassProducerController{@Resource(name ="transRabbitTemplate")privateRabbitTemplate transRabbitTemplate;@Transactional@RequestMapping("/trans")publicStringtrans(){ transRabbitTemplate.convertAndSend(""

By Ne0inhk
Flutter 组件 postgres_crdt 的适配 鸿蒙Harmony 实战 - 驾驭分布式无冲突复制数据类型、实现鸿蒙端高性能离线对等同步架构方案

Flutter 组件 postgres_crdt 的适配 鸿蒙Harmony 实战 - 驾驭分布式无冲突复制数据类型、实现鸿蒙端高性能离线对等同步架构方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 postgres_crdt 的适配 鸿蒙Harmony 实战 - 驾驭分布式无冲突复制数据类型、实现鸿蒙端高性能离线对等同步架构方案 前言 在鸿蒙(OpenHarmony)生态的分布式协作编辑器、多端同步的即时通讯资产库以及需要实现“本地优先(Local-first)”架构的各类大型数字化政务应用开发中,“数据一致性的最终收敛”是系统稳定性的灵魂。面对由 5 台鸿蒙设备在不同地点、不同弱网环境下同时对同一份 JSON 资产执行的交叉修改。如果依然采用基于“锁”或“版本号覆盖”的传统同步逻辑。不仅会导致频繁出现的由于并发冲突引发的“保存失败”报错,更会因为无法处理跨设备的时序漂移,引发严重的资产状态错乱。 我们需要一种“逻辑守恒、冲突自愈”的存储艺术。 postgres_crdt 是一套专注于将 PostgreSQL 生态的严谨性与无冲突复制数据类型(

By Ne0inhk