本文介绍: ajax请求体的3种常用类型场景中的两种

请求类型contenttype

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

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

 请求头Content-Type类型                             请求体值格式
    1. application/xwwwformurlencoded     参数名=值&参数名=值 的字符串
    2. application/json                                    ‘{“参数名”: 值, “参数名”: 值} 的json字符串
    3. multipart/formdata                               FormData表单数据(常用携带文件)

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

这里先来简单说说formserialize 表单整体获取

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

  1. 一定要先引入formserialize.js 工具
  2. 写js代码。直接调用serialize方法
  3. 注意代码格式如下:
  4. 格式1: serialize(form标签) 返回值是:查询字符串格式
  5. 格式2: serialize(form标签, { hash: true }) 返回值是: json对象
  6. 注意点:需要获取数据表单内部标签,里面应该加上name属性!
     
<body&gt;
    <form id="form"&gt;
        <div&gt;
            <!-- 用户名 --&gt;
            <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对象

 

原文地址:https://blog.csdn.net/langziangTom/article/details/127835741

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_26506.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注