尝试从 ajax(Wordpress 插件)将 FormData 中的 Blob 发布到 php 时出现 400(错误请求)
Posted
技术标签:
【中文标题】尝试从 ajax(Wordpress 插件)将 FormData 中的 Blob 发布到 php 时出现 400(错误请求)【英文标题】:Getting 400 (Bad Request) when trying to post a Blob in FormData to php from ajax (Wordpress Plugin) 【发布时间】: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 与它一起发送,否则它会起作用。
您可以提供的任何和所有见解都是有帮助的,我非常感谢。谢谢~
【问题讨论】:
【参考方案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)
)
【讨论】:
以上是关于尝试从 ajax(Wordpress 插件)将 FormData 中的 Blob 发布到 php 时出现 400(错误请求)的主要内容,如果未能解决你的问题,请参考以下文章