gpt4 book ai didi

Javascript XHR 发送多部分/表单数据

转载 作者:数据小太阳 更新时间:2023-10-29 06:06:54 24 4
gpt4 key购买 nike

我正在尝试发送一个 multipart/form-data 内容类型请求:

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function(){
if(xhr.readyState==4){
alert(xhr.responseText);
}
}

xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type","multipart/form-data; boundary=---------------------------275932272513031");

xhr.send('-----------------------------275932272513031 Content-Disposition: form-data; name="name"

test

----------------------------275932272513031--');

然后在 php 中我只打印 $_POST 数组

print_r($_POST);

但我每次都得到一个空数组。我希望看到

Array (
name => "test"
)

我做错了什么?

最佳答案

您的代码失败是因为您使用了“Enter”而不是转义换行符 (\n)。
JavaScript 不支持 "first line[Enter]second line"。如果您需要带换行符的字符串,请使用 "first line\nsecond line"

解决此问题后,您的代码应该可以按预期工作(有一个警告,请参阅最后的注释):

var xhr = new XMLHttpRequest();
xhr.onload = function() {
alert(xhr.responseText);
};
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type","multipart/form-data; boundary=---------------------------275932272513031");
xhr.send('-----------------------------275932272513031\n' +
'Content-Disposition: form-data; name="name"\n\n' +
'test\n\n' +
'----------------------------275932272513031--');

注意:您的代码仅适用于由 UTF-8 字符组成的负载,二进制数据。如果您想了解有关通过 XMLHttpRequest 提交带有二进制数据的表单的更多信息,请参阅 this answer及其链接的引用资料。

关于Javascript XHR 发送多部分/表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20730489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com