【问题标题】:Uploading is stuck上传卡住了
【发布时间】:2021-06-29 10:27:36
【问题描述】:

$("#sendingForm").submit(

        function ()
        {
            if (checkForm())
                sendForm();
            return false;
        }

    );
function sendForm ()
        {
            var formData = new FormData($("#sendingForm"));
            $.ajax({
                    url: '/process.php',
                    method: 'post',
                    contentType: 'multipart/form-data',
                    data: formData,
                    success: function(response){
                        if (response!="0")
                            errorsDecode(response);
                        else
                            alrightMes();
                        alert(response);
                    }
                });
        }

我以前是序列化表单数据,但后来我不得不添加文件上传,所以我使用 FormData 类。但它不起作用。我找不到原因。请帮帮我。

【问题讨论】:

  • 请添加一些您在控制台或浏览器端收到的错误消息。

标签: javascript ajax file upload


【解决方案1】:

FormData 不会解开代表表单元素的 jQuery 对象。

尝试改变:

var formData = new FormData($("#sendingForm"));

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

您还需要防止在内部通过 $.ajax 处理 FormData 对象,并且在使用 FormData 对象时浏览器将设置多部分内容类型

$.ajax({
  url: '/process.php',
  method: 'post',
  contentType: false,// browser will set multi-part when FormData used
  processing: false,
  data: formData,
  success: function(response) {
    if (response != "0")
      errorsDecode(response);
    else
      alrightMes();
    alert(response);
  }
});

【讨论】:

  • 我尝试使用 querySelector 而不是 $() 并且我已经编写了 contenttype 和 proccessing 但它仍然不起作用。
  • 需要用更具体的调试术语来定义“不起作用”。如果开发工具控制台中有任何错误,请从错误开始。然后打开开发工具网络选项卡并检查实际请求并查看发送的内容、状态、响应正文等
  • 同时编辑问题以显示如何调用sendForm ()
  • 如何找出它们?提交后我只刷新了页面。
  • 我添加了一个部分,调用 sendForm()。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-23
  • 2021-10-08
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多