jspost请求详解

POST 解决什么问题?

GET 适合读取数据;POST 用来把前端的数据发送给后端服务器保存 。 GET 把参数拼在 URL 里,长度有限、明文可见,不适合传大量内容、密码、表单。 POST 是放在**请求体(request body)**里面传给后端,不会暴露在地址栏,能传更多数据。

一句话:GET 是拿,POST 是提交。

2. POST 使用场景

  1. 用户登录:提交账号密码
  2. 新增数据:新增部门、新增用户(比如在组织架构树新增一条员工)
  3. 提交表单:发表评论、提交订单
  4. 上传简单文本数据(文件上传会更复杂,本篇不涉及)

小提醒: GET:查询,不修改服务器数据; POST:提交,新增 / 修改服务器数据。

3. POST 使用步骤(对比 GET,两处关键差别)

前面 4 步基础流程不变,但是有两个新增关键点:

  1. 必须设置请求头 :Content-Type,告诉后端我传过去的数据是什么格式(传 JSON 就设application/json;表单格式是application/x-www-form-urlencoded)
  2. 数据放在 send () 里面,不是拼在 url 上!
示例 1:POST 提交 JSON 格式(现在项目最常用)
复制代码
<script>
// 要发给后端的数据,JS对象
let submitData = {
  name: "测试部门",
  parentId: 1
}

// 1. 创建xhr对象
let xhr = new XMLHttpRequest()
// 2. open,方法改为POST,地址写接口地址
let apiUrl = "https://mock.apifox.cn/m1/xxxx/addDept"
xhr.open("POST", apiUrl)

// ✅POST重点1:设置请求头,声明我们传的是JSON字符串
xhr.setRequestHeader("Content-Type", "application/json")

// 3. 监听状态变化
xhr.onreadystatechange = () => {
  if(xhr.readyState === 4){
    if(xhr.status === 200){
      // 后端返回JSON字符串,解析成JS对象
      let res = JSON.parse(xhr.responseText)
      console.log("提交成功", res)
    }else{
      console.log("提交失败,状态码:", xhr.status)
    }
  }
}

// ✅POST重点2:send里面放数据,必须把JS对象转JSON字符串
xhr.send( JSON.stringify(submitData) )
</script>
示例 2:表单格式 application/x-www-form-urlencoded(老式表单)
复制代码
let xhr = new XMLHttpRequest()
xhr.open("POST", "接口地址")
// 设置表单类型
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
// 数据格式:key1=值1&key2=值2
let dataStr = `name=测试部门&parentId=1`
xhr.onreadystatechange = ()=>{
  if(xhr.readyState === 4 && xhr.status === 200){
    console.log(xhr.responseText)
  }
}
xhr.send(dataStr)

坑点:POST 忘记 setRequestHeader,后端拿到的数据就是 undefined,接收不到参数!

相关推荐
卸任3 小时前
Vibe coding工具使用心得
前端·ai编程
brien94 小时前
为什么模型标称 1M,Google Antigravity 聊到 256K 却突然失忆?我们给它做了个原生行内监控圆环
前端
修炼的dance4 小时前
录屏关键帧间隔多少合适?六档实测,2秒到10秒小了75.6%
前端
Lank_M4 小时前
关键帧从1秒拉到10秒,录屏小87.3%,摄像头小10.8%
前端
补码缩写4 小时前
用 ffprobe 拆录屏,八成字节在 29 个关键帧上
前端
百思不得小李4 小时前
一个复杂的动态表单是如何实现的
前端·设计模式
陈随易5 小时前
Cmder 停更 17 个月,2.0 支持 Windows Terminal
前端·后端·程序员
清晨Coding5 小时前
删了 Cookie 还能自动登录?Google系网站登录态自动恢复的原理分析
javascript
风骏时光牛马5 小时前
前沿视界
前端
kyriewen5 小时前
我扫了 814 个依赖,97 个还敢要 Node 10
前端·javascript·程序员