jquery AJAX 使用FormData、serialize或JSON.stringify方法发布数据

xtfmy6hx  于 2023-06-29  发布在  jQuery
关注(0)|答案(1)|浏览(131)

我有一个关于使用FormData对象、serialize()或JSON.stringify()方法使用 AJAX 发布数据的问题。我什么时候应该使用一个而不是其他的?换句话说,它们各自的优缺点是什么?谢谢你的帮助。

使用FormData:

var formData = new FormData($("#myFormId")[0]);

        $.ajax({
            type: "POST",
            url: myPostUrl,
            data: formData,
            async: false,
            cache: false,
            processData: false,
            contentType: false,
            success: function (response) {
            ... }
         ..});

使用serialize()方法:

var data = $("form-input-selectors").serialize();

    $.ajax({
        type: "POST",
        url: myOtherPostUrl,
        data: data,
        async: false,
        cache: false,
        success: function (response) {
            ......
        }
    });

使用JSON.stringify():

$.ajax({
            url: 'myPostUrl',
            type: "POST",
            cache: false,
            datatype: "JSON",
            data: JSON.stringify({
                "id": id,
                "name": name,
                "type": type,
                "description": description,
                "email": email
            }),
            success: function(result) {
                //do stuff
            }
l7mqbcuq

l7mqbcuq1#

  • formdata => js array
  • JSON.stringify => application/json.
  • serialize => application/x-www-form-urlencoded数据(HTML表单提交的标准编码)

注意:对于发送文件,请使用formdata/ serialize

相关问题