news 2026/4/15 12:04:32

原生JS请求API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
原生JS请求API

GET方式前端- 多个参数

// 场景:查询数据 GET方式asyncfunctiongetData(){constparams={sceneId:'order_123',userId:'user_456',type:'normal'};// 方式2:使用URLSearchParams(推荐)constqueryString=newURLSearchParams(params).toString();consturl2=`/api/data?${queryString}`;constresponse=awaitfetch(url2);constdata=awaitresponse.json();returndata;}

GET方式后端:

[HttpGet("data")] public IActionResult GetData([FromQuery] SceneQueryParams query) { // 直接通过对象访问 return Ok(new { query.SceneId, query.UserId, query.Type, message = "GET请求成功" }); }

POST方式-前端:

// 场景:提交复杂对象asyncfunctioncreateOrder(){constpostData={sceneId:'order_123',userInfo:{name:'张三',phone:'13800000000'},items:[{id:1,price:99.9},{id:2,price:199.9}]};constresponse=awaitfetch('/api/order',{method:'POST',// 指定POST方法headers:{'Content-Type':'application/json'// 声明发送JSON},body:JSON.stringify(postData)// 序列化为JSON字符串});if(!response.ok){thrownewError(`请求失败:${response.status}`);}constresult=awaitresponse.json();console.log('创建成功:',result);returnresult;}

POST方式-后端:

[HttpPost("order")] public IActionResult CreateOrder([FromBody] OrderDto dto) { // dto已经自动反序列化 return Ok(new { success = true, message = "订单创建成功", sceneCode = $"{dto.SceneId}_{Random.Shared.Next(0, 1000000).ToString("D6)}" }); }

再举例-修改数据:POST

后端控制器
// Controllers/SceneController.cs [ApiController] [Route("api/scene")] public class SceneController : ControllerBase { [HttpPost("update-code")] public IActionResult UpdateSceneCode([FromBody] string sceneId) { // 参数验证 if (string.IsNullOrWhiteSpace(sceneId)) return BadRequest(new { success = false, message = "sceneId不能为空" }); try { // 生成场景编码 string sceneCode = $"{sceneId}_{Random.Shared.Next(0, 1000000).ToString("D6)}"; // **模拟数据库更新**(实际项目中替换为真实DB操作) Console.WriteLine($"[模拟数据库更新] sceneId={sceneId}, sceneCode={sceneCode}"); return Ok(new { success = true, sceneCode, message = "生成成功" }); } catch (Exception ex) { // 记录错误日志(实际项目中用ILogger) Console.WriteLine($"[错误] {ex.Message}"); return StatusCode(500, new { success = false, message = "服务异常" }); } } }
前端JS
// 按钮事件:传递sceneIdasyncfunctiongenerateAndSaveSceneCode(sceneId){// 验证参数if(!sceneId){alert('sceneId不能为空');return;}// 显示加载状态constbutton=document.activeElement;if(button)button.disabled=true;try{// POST提交单个参数constresponse=awaitfetch('/api/scene/update-code',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(sceneId)// 直接序列化字符串});if(!response.ok){thrownewError(`HTTP错误:${response.status}`);}constresult=awaitresponse.json();if(result.success){// 成功后打开二维码页面consturl=`/miniprogram/checkinqrcode.html?scene=${encodeURIComponent(result.sceneCode)}`;window.open(url,'_blank','noopener,noreferrer');console.log('场景编码生成成功:',result.sceneCode);}else{alert('生成失败: '+result.message);}}catch(error){console.error('操作失败:',error);alert('生成失败: '+error.message);}finally{// 恢复按钮状态if(button)button.disabled=false;}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/6 4:51:27

Quill编辑器文本大小控制完全指南:从基础配置到高级定制

Quill编辑器文本大小控制完全指南:从基础配置到高级定制 【免费下载链接】quill Quill is a modern WYSIWYG editor built for compatibility and extensibility 项目地址: https://gitcode.com/gh_mirrors/qui/quill 还在为网页编辑器中文字大小调整而困扰吗…

作者头像 李华
网站建设 2026/4/10 7:02:03

Psi4量子化学计算:5步掌握分子能量分析终极指南

Psi4量子化学计算:5步掌握分子能量分析终极指南 【免费下载链接】psi4 Open-Source Quantum Chemistry – an electronic structure package in C driven by Python 项目地址: https://gitcode.com/gh_mirrors/ps/psi4 想要快速掌握分子能量计算却不知从何入…

作者头像 李华
网站建设 2026/4/14 7:42:22

从零到一:如何为网站添加专业级语音识别功能

从零到一:如何为网站添加专业级语音识别功能 【免费下载链接】whisperX m-bain/whisperX: 是一个用于实现语音识别和语音合成的 JavaScript 库。适合在需要进行语音识别和语音合成的网页中使用。特点是提供了一种简单、易用的 API,支持多种语音识别和语音…

作者头像 李华
网站建设 2026/4/8 8:40:41

31、服务器数据备份与恢复全攻略

服务器数据备份与恢复全攻略 在服务器管理中,数据备份和恢复是至关重要的环节。它不仅能防止因各种意外情况导致的数据丢失,还能确保在出现问题时能够快速恢复系统,减少业务中断的时间。下面将详细介绍服务器数据备份与恢复的具体方法和步骤。 数据恢复操作 在进行数据恢…

作者头像 李华
网站建设 2026/4/4 1:56:18

7、Linux文本编辑器:vi与vim使用指南

Linux文本编辑器:vi与vim使用指南 1. 趣味体验与基础回顾 在Linux的世界里,有一个有趣的小活动。输入以下命令,准备好爆米花尽情享受: telnet towel.blinkenlights.nl若想停止这个“电影”体验,按住Ctrl键并按下]键,然后在 telnet> 提示符下输入 quit 并回车即…

作者头像 李华
网站建设 2026/3/30 23:25:07

9、Linux 软件管理与编程语言入门指南

Linux 软件管理与编程语言入门指南 在 Linux 系统的使用过程中,软件管理和编程是两个重要的方面。下面将详细介绍如何在不同 Linux 发行版中进行软件的查找、安装、移除,以及用户账户和组的管理,同时还会对 Linux 编程语言进行概述。 1. 软件查找 有时候,安装软件的一个…

作者头像 李华