FormData () - JQUERY - PullRequest
       3

FormData () - JQUERY

0 голосов
/ 11 декабря 2018

До тех пор, пока мне не понадобилось загрузить файл AJAX, я никогда не знал, что существует такой метод, как "FormData ()", который POST все значения ФОРМЫ и некоторые другие.

Я тестировал и отлично работал для загрузки файлов, но я также мог отправить другие POST DATA, и это стало еще лучше.

Могу ли я всегда использовать это для всех своих форм, бросать AJAX, даже если у меня нет файла для загрузки?Или есть уменьшение этой загрузки файла?

С точки зрения производительности, лучше получить значение ввода и отправить в виде данных, или я могу просто использовать это для упрощения?

Единственная информация, которую я мог найти по этому поводу, быладля загрузки файла, а не общего использования этого метода.

Пример кода:

<form id="theForm">
<<input id="test" type="text" name="test" placeholder="test" required="">
<input id="uploadFile" type="file" name="uploadFile" placeholder="uploadFile" required="">
<input id="submitFile" type="submit">
</form> 

$("#submitFile").on("click",function(event){

    event.preventDefault();

    var formData = new FormData($('#theForm')[0]);

    $.ajax({

            type: "POST",
            url: "inc/upload.php",
            data: formData,
            contentType: false,
            processData: false,
           beforeSend: function() {

               //Do Something 
         },

        })
        .done(function()
        {

        //Do Something 


        });


});

Спасибо, С уважением!

1 Ответ

0 голосов
/ 11 декабря 2018

Да, вы можете использовать FormData() для любой формы.Единственным недостатком является то, что это более подробный формат.Он использует кодировку multipart/form-data вместо application/x-www-form-urlencoded.Вместо краткого синтаксиса:

name1=value1&name2=value2&...

параметры формы будут отправлены примерно так:

--Delimiter
Content-Disposition: form-data; name="name1"

value1
--Delimiter
Content-Disposition: form-data; name="name2"

value2
--Delimiter
...

Где Delimiter - длинная случайная строка.

* 1012У * jQuery есть метод $("#theForm").serialize(), который возвращает строку в кодировке URL.Это можно использовать для любой формы, которая не содержит ввода file.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...