HTML中不同方式提交Form的区别

1、Submit提交不包括文件的Form

1.1、RequestHeaders 

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 226
Content-Type: application/x-www-form-urlencoded
Cookie: csrftoken=bXNrfE0mPP3yGpLmp7mSfI8ugLiYGSdGzlhYqfwN3mgCUPWWUyuJDmIvW1ahYxeU
Host: 127.0.0.1:8006
Origin: http://127.0.0.1:8006
Pragma: no-cache
Referer: http://127.0.0.1:8006/register/
Upgrade-Insecure-Requests: 1

1.2、Form Data

csrfmiddlewaretoken: r2tAgQyjVs50MPi97nmlXPt0SiH5jdtrPqX7rr4K9Zi40ftJCOuclt31yyzoBSuF
email: [email protected]
phone: 1112321313
username: root
nickname: fawfewaf
password: 12222222222222222222222
repassword: 21222222222222222222223

2、Submit提交包括文件的Form

2.1、设置enctype

<form action="/register_file/" method="post" novalidate class="form-horizontal reg-form" enctype="multipart/form-data">
</form>

2.2、RequestHeaders

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 995894
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryxIZmJLOPhZDl3xjz
Cookie: csrftoken=bXNrfE0mPP3yGpLmp7mSfI8ugLiYGSdGzlhYqfwN3mgCUPWWUyuJDmIvW1ahYxeU
Host: 127.0.0.1:8006
Origin: http://127.0.0.1:8006
Pragma: no-cache
Referer: http://127.0.0.1:8006/register_file/
Upgrade-Insecure-Requests: 1

3、AJAX提交不包括文件的Form

3.1、HTML中jquery代码

<script>
    // AJAX提交注册数据
    $("#reg-submit").click(function () {
        var email = $("#id_email").val();
        var phone = $("#id_phone").val();
        var username = $("#id_username").val();
        var nickname = $("#id_nickname").val();
        var password = $("#id_password").val();
        var repassword = $("#id_repassword").val();

        $.ajax({
            url: ‘/register_ajax_nofile/‘,
            type: ‘post‘,
            data: {
                email: email,
                phone: phone,
                username: username,
                nickname: nickname,
                password: password,
                repassword: repassword,
                csrfmiddlewaretoken: $(‘[name="csrfmiddlewaretoken"]‘).val()

            },
            success: function (data) {
                if (data.status == 1) {
                    // 有错误就展示错误
                    {#console.log(data.msg);#}
                    $.each(data.msg, function (k, v) {
                        console.log(k, v);
                        $(‘#id_‘ + k).next("span").text(v[0]).parent().parent().addClass("has-error");
                    });
                } else if (data.status == 2) {
                    $(‘#other_error‘).text(data.msg);
                    $(‘#id_email‘).parent().parent().addClass("has-error");
                    $(‘#id_username‘).parent().parent().addClass("has-error");
                }
                else {
                    // 没错误就跳转
                    {#console.log("chengg");#}
                    {#console.log(data.msg);#}
                    location.href = data.msg;
                }
            }
        })
    });

    // 将所有的input框绑定获取焦点的事件,将所有的错误信息清空
    $("form input").focus(function () {
        $(this).next().text("").parent().parent().removeClass("has-error");
    })
</script>

3.2、RequestHeaders

Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 218
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: csrftoken=bXNrfE0mPP3yGpLmp7mSfI8ugLiYGSdGzlhYqfwN3mgCUPWWUyuJDmIvW1ahYxeU
Host: 127.0.0.1:8006
Origin: http://127.0.0.1:8006
Pragma: no-cache
Referer: http://127.0.0.1:8006/register_ajax_nofile/
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
X-Requested-With: XMLHttpRequest

3.3、Form Data

email: [email protected]
phone: 1112321313
username: root
nickname: fawfewaf
password: 2133333333333333333333
repassword: 331122222222222222222
csrfmiddlewaretoken: 39G9o4V2vP4pnpeqC4kujr9XBhXUVysPrxaGzFrtJmhtBPp07vslH5JYhxPdddt3

4、AJAX提交包括文件的Form

4.1、HTML中JavaScript代码

<script>

    // 找到头像的input标签绑定change事件
    $("#id_avatar").change(function () {
        // 1. 创建一个读取文件的对象
        var fileReader = new FileReader();
        // 取到当前选中的头像文件
        // console.log(this.files[0]);
        // 读取你选中的那个文件
        fileReader.readAsDataURL(this.files[0]);  // 读取文件是需要时间的
        fileReader.onload = function () {
            // 2. 等上一步读完文件之后才 把图片加载到img标签中
            $("#avatar-img").attr("src", fileReader.result);
        };
    });

    // AJAX提交注册数据
    $("#reg-submit").click(function () {
        var formData = new FormData();

        formData.append("email", $("#id_email").val());
        formData.append("phone", $("#id_phone").val());
        formData.append("username", $("#id_username").val());
        formData.append("nickname", $("#id_nickname").val());
        formData.append("password", $("#id_password").val());
        formData.append("repassword", $("#id_repassword").val());
        formData.append("avatar", $(‘#id_avatar‘)[0].files[0]);
        formData.append("csrfmiddlewaretoken", $(‘[name="csrfmiddlewaretoken"]‘).val());

        $.ajax({
            url: ‘/register_ajax_file/‘,
            type: ‘post‘,
            processData: false,  // 告诉jQuery不要处理我的数据
            contentType: false,  // 告诉jQuery不要设置content类型
            data: formData,
            success: function (data) {
                if (data.status == 1) {
                    // 有错误就展示错误
                    {#console.log(data.msg);#}
                    $.each(data.msg, function (k, v) {
                        {#console.log(k, v);#}
                        $(‘#id_‘ + k).next("span").text(v[0]).parent().parent().addClass("has-error");
                    });
                } else if (data.status == 2) {
                    $(‘#other_error‘).text(data.msg);
                    $(‘#id_email‘).parent().parent().attr("class", "has-error");
                    $(‘#id_username‘).parent().parent().attr("class", "has-error");
                }
                else {
                    // 没错误就跳转
                    {#console.log("chengg");#}
                    {#console.log(data.msg);#}
                    location.href = data.msg;
                }
            }
        })
    });

    // 将所有的input框绑定获取焦点的事件,将所有的错误信息清空
    $("form input").focus(function () {
        $(this).next().text("").parent().parent().removeClass("has-error");
    })
</script>

4.2、RequestHeaders

Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 699377
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryY2vtwPzBB4IHfuAV
Cookie: csrftoken=bXNrfE0mPP3yGpLmp7mSfI8ugLiYGSdGzlhYqfwN3mgCUPWWUyuJDmIvW1ahYxeU
Host: 127.0.0.1:8006
Origin: http://127.0.0.1:8006
Pragma: no-cache
Referer: http://127.0.0.1:8006/register_ajax_file/
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
X-Requested-With: XMLHttpRequest

4.3、Form Data

email: [email protected]
phone: 1112321313
username: root
nickname: fawfewaf
password: 2111111111111111111111
repassword: 1111222222222222
avatar: (binary)
csrfmiddlewaretoken: 59dTDvSiImYwlCBgRjRZ0tD8bWck3NAwtxHqO6oJWTbAz2MQmKZQo7d9Rc4DlsBK

5、区别

提交方式 是否有上传文件
Content-Type
 
Form提交 没有 application/x-www-form-urlencoded  
Form提交 multipart/form-data  
Ajax提交 没有 application/x-www-form-urlencoded  
Ajax提交 multipart/form-data  

原文地址:https://www.cnblogs.com/bad-robot/p/9759695.html

时间: 2024-10-13 20:08:29

HTML中不同方式提交Form的区别的相关文章

Django以ajax方式提交form

view.py def ajax(request): if request.method == 'GET': obj = AjaxForm() return render(request,'ajax.html',{'obj':obj}) else: ret = {'status':'no','message':None} import json obj=AjaxForm(request.POST) if obj.is_valid(): # 这里开始做的数据验证 ret['status'] = '

tp5中ajax方式提交表单

用ajax提交表单,迅速,快捷,实现页面无刷新提交表单. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ajax批删</title> </head> <body> <center> <table> <tr> <td>姓名</t

HTML提交方式post和get区别(实验)

HTML提交方式post和get区别(实验) 一.post和get区别 get提交,提交的信息都显示在地址栏中. post提交,提交的信息不显示地址栏中,显示在消息体中. 二.客户端代码 <!DOCTYPE html> <html> <head> <title>Form.html</title> <meta name="keywords" content="keyword1,keyword2,keyword3&

在javascript中关于submit和button提交表单区别

原文:在javascript中关于submit和button提交表单区别 原文来自:http://www.jb51.net/article/42236.htm submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上. 1. 如果表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常都必须把submit改成button,即取消其自动提交的

form表单提交转为ajax方式提交

在做项目的过程中遇到要将form表单提交转为ajax方式提交,下面是我总结的如何把form表单提交无缝转为ajax方式提交的方法. 原先的form表单长这样: <form action="xxx" method="get"> //action的值是请求的url地址 <div class="form-group"> <label for="name">姓名</label> <

(转)在javascript中关于submit和button提交表单区别

原文来自:http://www.jb51.net/article/42236.htm submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上. 1. 如果表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常都必须把submit改成button,即取消其自动提交的行为, 否则,将会造成提交两次的效果,对于动态网页来说,也就是对数据库操作

表单_post提交方式和get的区别,元素集

提交方式及表单域的name属性 使用form表单一种是post提交方式,一种是get提交方式,它们以method属性来定义,如果没有指定method属性,默认get方式提交. 表单域必须配合name属性才可以将数据提交到服务器 post方式与get方式的区别: 一.安全性 get方式不安全,以URL方式进行提交.(密码会显示在地址栏) post以请求实体提交,不会显示地址栏,足够安全 二.提交大小限制 get方式提交的内容有限,一个地址栏放不了多少东西,1k左右 post大小无限制,可以放大文件

导出excel时,以form方式提交json数据

今天在写项目时写到一个excel的导出,开始想用ajax请求后台后导出,但发现ajax会有返回值,而且ajax无法直接输出文件,而后台的excel导出方法已经封装好,不方便修改. 就改用了提交的方式form,但form提交,表格分页用的是jquerytable,我需要将一些jquerytable的一些参数传到后台,但这些数据已经是json数据,如果我直接放在input中提交到后台在解析参数会很麻烦,所以就想将json数据转为form方式提交. js //导出 function exportExc

力所能及之关于用JavaScript方式写ajax,post与get提交的注意区别

     JavaScript方式写ajax,要注意很多,关于post与get提交方式的区别,小狼整理了一点    在jsp文件中,只需要关注ajax中以get方式提交的代码和以post方式提交的代码的区别.以get方式提交的数据要放到请求连接后面,当做url的参数来传递,而以post提交的根据放在send()方法中的数据提交到服务器端