簡體   English   中英

如何在不使用FormData的情況下在ajax調用中添加文件數據?

[英]how to add file data in ajax call without using FormData?

如何添加文件數據以及一些正常數據,即在ajax調用中沒有形式? 當前我在我的ajax腳本中

$("body").on("click", "#next-step", function(event){
                $("#loader").show();
                event.preventDefault();               

                var file = $("#upload_logo")[0].files[0];
                $.ajax({
                    type: 'POST',
                    url: 'step-two.php',
                    data:{
                      name : "my name",  
                    },
                    file : {upload_logo : file},
                    contentType: false,
                    processData: false, 
                    success: function(response)
                    {
                        $("#loader").hide();
                        alert(response);

                    }
                })


    });

我發現了解決方案,但這不是我希望它的工作方式

event.preventDefault();
                var fdata = new FormData()


                if($("#upload_logo")[0].files.length>0)
                   fdata.append("upload_logo",$("#upload_logo")[0].files[0])

                $.ajax({
                    type: 'POST',
                    url: 'step-two.php',
                    data:{fdata},

它的工作原理,但我的問題是,如果我只想在數據中添加我的文件,我該怎么做? 而不是使用FormData()任何替代?

無法通過ajax上傳文件。 您可以使用IFrame上傳文件,而無需刷新頁面。 你可以在這里查看更多細節

使用XHR2,支持通過AJAX上傳文件。 例如,通過FormData對象,但不幸的是,所有/舊瀏覽器都不支持它。

FormData支持從以下桌面瀏覽器版本開始。 IE 10 +,Firefox 4.0 +,Chrome 7 +,Safari 5 +,Opera 12+

有關更多詳細信息, 請參閱MDN鏈接

Use Form data 

var formData = new FormData('form id');
  $.ajax({
 type: 'post',
 async: false,
 cache: false,
 url: '',
 contentType: false,
 processData: false,
 data: formData,
 dataType: 'json',
 success: function (response) {

   }
 });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM