ajax请求体的3种常用类型和场景(1)

请求体类型content-type

在哪:请求报文->请求头中的Content-Type字段

作用:用来标记请求体内容的类型

 请求头Content-Type类型                             请求体值格式
    1. application/x-www-form-urlencoded     参数名=值&参数名=值 的字符串
    2. application/json                                    '{"参数名": 值, "参数名": 值} 的json字符串
    3. multipart/form-data                               FormData表单数据(常用携带文件)

值得注意的是,三种请求体的数据上传,是需要用到三种不同的方式,其中第一种(查询字符串)和第二种(json对象)方式相似,需要用到语法form-serialize,而第三种(文件数据)上传则需使用语法_FormData

这里先来简单说说form-serialize 表单整体的获取

我们可以使用form-serialize插件,获取整个表单数据

  1. 一定要先引入form-serialize.js 工具
  2. 写js代码。直接调用serialize方法
  3. 注意代码格式如下:
  4. 格式1: serialize(form标签) 返回值是:查询字符串的格式
  5. 格式2: serialize(form标签, { hash: true }) 返回值是: json对象
  6. 注意点:需要获取数据的表单内部标签,里面应该加上name属性!
     
<body>
    <form id="form">
        <div>
            <!-- 用户名 -->
            <span>用户名:</span>
            <input type="text" name="username">
        </div>
        <div>
            <!-- 密码: -->
            <span>登录密码:</span>
            <input type="password" name="password">
        </div>
        <div>
            <!-- 提交按钮 -->
            <button id="submit">提交</button>
        </div>
    </form>
    <script>
        document.querySelector('#submit').addEventListener('click',(e)=>{
            e.preventDefault()
            const p = serialize(document.querySelector('form'), { hash: true })
            console.log(p);
            axios({
                url:'http://ajax-api.itheima.net/api/data',
                method:'POST',
                data:p
            }).then(res=>{
               console.log(res.data.data);
            })
        })
    </script>
</body>

当我们需要的上传的数据类型是查询字符串时,应该使用

格式1: serialize(form标签) 返回值是:查询字符串的格式

 

当我们需要的上传的数据类型是json对象时,应该使用

格式2: serialize(form标签, { hash: true }) 返回值是: json对象

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值