ajax 用 append 丢 json 给后端?
我有一个文章功能
一个表单中是用以下去给 ajax
formData = new FormData($('#form')[0]);
ajax
type: "POST",
url: "url",
data: formData,
enctype: "multipart/form-data",
cache: false,
contentType: false,
processData: false,
```
用这样的方式丢到后端去(PHP)
表单中有 file 照片上传跟一般 input
只是我找了一个编辑器
他 output 的格式是 json 像这样
{
"time":1564653497717,
"blocks":[
{
"type":"paragraph",
"data":{
"text":"serhsrehehserhesh"
}
}
],
"version":"2.15.0"
}
于是就有一个问题
我如何将这个 json 丢到后端去?
我的做法是
formData.append('outputData', JSON.stringify(outputData));
后端接收
foreach (json_decode($_POST['outputData'], true) as $key) {
echo $key['time'];
}
但会出现 `Invalid argument supplied for foreach()` 错误,`$_POST['outputData']` 在 foreach 抓不到值,等于是没过去后端⋯⋯
把 json string 丢到 formData 其中一个 field 但不行
这⋯⋯能怎么解呢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
后端给你的返回的json ,如果没有指明 Content-Type 为 application/json ,那么就会被 js 作为 普通字符串来解释,这时候就是一个普通字符串,不再需要 JSON.stringify ,你可以先打印看一下 outputData 是字符串还是对象。
后端收到 outputData 应该先打印检查校验其内容,而不是直接交给 foreach