首页 > 解决方案 > 如何在 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。这里如何接收客户端发来的这种格式的数据?提出你的想法。

标签: javascriptc#xmlhttprequestmultipartform-dataform-data

解决方案


您需要明确发送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)


推荐阅读