我们需要通过将数据附加到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形式接收。如何以这种格式接收来自客户端的数据?提出您的想法。
答案 0 :(得分:1)
您需要明确发送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);
(请注意,我固定了ajax.open
中的arg顺序,收到的formdata类似于[object Object]
,但我认为JSON.stringify()
是这里的解决方案-取决于您的服务器如何解析formdata)
答案 1 :(得分:1)
在服务器代码中,将args的类型设置为String并检查是否正在获取字符串化的数据。 如果得到它,请相应地解析数据以适合MyModel。
提供有关服务器代码的更多信息可能会帮助我进一步研究。
编辑1:可能也有帮助的链接