如何在JavaScript中的FormData中附加对象?

时间:2019-07-17 10:00:10

标签: javascript c# xmlhttprequest multipartform-data form-data

我们需要通过将数据附加到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形式接收。如何以这种格式接收来自客户端的数据?提出您的想法。

2 个答案:

答案 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:可能也有帮助的链接