【发布时间】:2021-09-21 14:05:33
【问题描述】:
从我的 reactJS 前端发送到由 Klein 处理的 PHP api 的多部分表单请求接收数据时,我遇到了一个大问题。 我只是尝试用 Javascript 发送这个获取请求
const data = new FormData();
data.append('sourceId', sourceId);
data.append('customerId', customerId);
const resp = await fetch(URL_CREATE_DOC, {
method: 'POST',
body: data,
headers: {
'Content-Type': 'multipart/form-data; boundary=stackoverflowrocks',
}
然后用这个在我的 PHP Api 中接收
var_dump($request->files()->all());
但是没有数据!在标题中,我看到前面发送的数据很好,当我创建 var_dump($request->server()) 时,如果我发送文件,我会看到 CONTENT_LENGHT 发生变化。我觉得我做的不好,但是如何从多部分请求中获取数据?
【问题讨论】:
-
FormData 自动创建随机边界值本身。通过尝试在
Content-Type标头中指定boundary=stackoverflowrocks,您可能会破坏这里的东西- 标头说主体解析器应该寻找的边界是stackoverflowrocks,但实际上,它可能是一个完全不同的边界。不要自己设置 Content-Type 标头 - fetch 和 FormData 能够自己解决这个问题。 muffinman.io/blog/… -
非常感谢@Cbroe!这是我的问题,我刚刚删除了
Content-Type行,它起作用了!这两天你解决了:)
标签: javascript php reactjs multipartform-data