javascript - 如何在 javascript 中的 FormData 中附加对象?
问题描述
我们需要通过将数据附加到 javascript 的 formdata 中来将数据发送到服务器。在 javascript 中,我们有如下处理。
var ajax = new XMLHttpRequest();
ajax.open("POST", url, true);
var formData = new FormData();
var obj = {url: "uploadUrl",type: 'POST', mode: true};
formData.append('myData', JSON.stringify(obj));
ajax.send(formData);
在服务器端,我们有如下方法。
public void Save(MyModel args) {
....
}
public class MyModel
{
public MyObj myData { get; set; }
}
public class MyObj
{
public string url { get; set; }
public string type { get; set; }
public bool mode { get; set; }
}
args.myData 始终接收为 null。这里如何接收客户端发来的这种格式的数据?提出你的想法。
解决方案
您需要明确发送formData
:
var ajax = new XMLHttpRequest();
ajax.open('POST', url, true);
var formData = new FormData();
var obj = {url: "uploadUrl",type: 'POST', mode: true};
formData.append('myData', obj);
ajax.send(formData);
(请注意,我修复了 arg 顺序,ajax.open
接收到的 formdata 将类似于[object Object]
但我认为JSON.stringify()
应该是这里的解决方案 - 这取决于您的服务器如何解析 formdata)
推荐阅读
- java - Spring Boot 库及应用结构
- vb.net - 为什么 DataGridViewTextBoxCell 在 DataGridView 中显示先前输入的输出
- c# - 从控制器返回 PDF 以查看时出现 ReadTimeOut 异常
- javascript - HTML 下拉列表显示的 Javascript 哈希图值
- lokijs - lokijs 存储在文件系统中而不是内存中
- express - Express - 获取请求 - 如何在我的响应中注入数据?
- php - PHP Slim - 使用带有简单 rest api 的匿名函数
- c# - 使用 AutoDetectChangesEnabled=false 时实体框架更新数据库问题
- python - Python - 如何从 socket.getpeername() 获取 IP?
- java - 如何将文本效果应用于 { } 花括号内的单词