【问题标题】:Getting 400 (Bad Request) when trying to post a Blob in FormData to php from ajax (Wordpress Plugin)尝试从 ajax(Wordpress 插件)将 FormData 中的 Blob 发布到 php 时出现 400(错误请求)
【发布时间】:2021-01-07 22:11:53
【问题描述】:

所以请看下面的代码。

        const chunk = file.slice(start,start + chunkSize + 1)
        const fd = new FormData()
        fd.append('data', chunk)
        $.ajax({
            type: 'POST',
            //cache: false,
            //contentType: false,
            //processData: false,
            url: ajax_object.ajaxurl,
            data:{
                action:'uploadChunk',
                //chunk: fd
            },
            success: function(response){
                console.log(response)
            }
        })

当我将这些 cmets 留在其中时,代码会返回其预期的响应......但是当我删除 cmets 以便我可以实际发送带有请求的 FormData 时,我收到 400(错误请求)错误。我现在在后端所做的只是回显一个字符串。而已。除非我尝试将 formData 与它一起发送,否则它会起作用。

您可以提供的任何和所有见解都是有帮助的,我非常感谢。谢谢~

【问题讨论】:

    标签: javascript php wordpress file blob


    【解决方案1】:

    将表单数据变量作为数据传递:

     const chunk = file.slice(start,start + chunkSize + 1)
     const fd = new FormData()
     fd.append('data', chunk)
    
       dataType: "json",
       data:{
             data:fd 
           },
    

    【讨论】:

      【解决方案2】:

      当您在 ajax 中使用 FormData 对象时,您只需将该对象单独传递给 ajax 函数。如果您必须传递任何其他数据,请使用附加。

          const chunk = file.slice(start,start + chunkSize + 1)
          const fd = new FormData()
          fd.append('data', chunk)
          fd.append('action', 'uploadChunk')
          $.ajax({
              type: 'POST',
              //cache: false,
              contentType: false,
              processData: false,
              url: ajax_object.ajaxurl,
              data: fd,
              success: function(response){
                  console.log(response)
              }
          })
      

      【讨论】:

        猜你喜欢
        • 2019-10-10
        • 2012-06-29
        • 1970-01-01
        • 2022-01-17
        • 1970-01-01
        • 1970-01-01
        • 2018-02-01
        • 2019-05-03
        • 1970-01-01
        相关资源
        最近更新 更多