简体   繁体   English

如何创建XMLHttpRequest FormData表单对象

[英]How to create a XMLHttpRequest FormData form object

I have a form that has files in it so i am using XMLHttpRequest to handle the sending of the data. 我有一个包含文件的表单,因此我正在使用XMLHttpRequest来处理数据的发送。

What i am trying to do is to be able to send objects that will be parsed by jackson on the server side. 我正在尝试做的是能够发送将由杰克逊在服务器端解析的对象。 just like you do with json. 就像您使用json一样。

For example: 例如:

 { "number": 123, "string": "Hello World", "object": { "a": "b" } 

} }

So i want to create "object". 所以我想创建“对象”。 from what i know i can only do "number" and "string" with 据我所知,我只能做“数字”和“字符串”

 formData.append("string", "Hello World");

May be there is a way to format it? 可能有格式化的方法吗?

when i just append some JSON formated object i get this as a result: 当我只是追加一些JSON格式的对象时,我得到的结果是:

  var oData = new FormData(document.forms.namedItem("upload-form")); element= {}; element.id = 2; element.type = "dfsdf"; element.url = "sdfsdff"; element.version = "asdasd"; arrayOfelement[0] = framework; oData.append("file", this.myfile.getFile()); oData.append("frameworks",JSON.stringify(arrayOfelement)) var xhr = new XMLHttpRequest(); xhr.open('POST', 'design', true); xhr.onload = function(e) { console.log("upload finished"); }; console.debug("sending form data", oData); xhr.send(oData); ------WebKitFormBoundaryVWNBucDMZSIlUcXY 

Content-Disposition: form-data; 内容处置:表单数据; name="arrayOfElements" {"0":{"id":2,"type":"dfsdf","url":"sdfsdff","version":"asdasd"}} name =“ arrayOfElements” {“ 0”:{“ id”:2,“ type”:“ dfsdf”,“ url”:“ sdfsdff”,“ version”:“ asdasd”}}

which is clearly not going to be parsed into anything on the server side. 这显然不会在服务器端解析为任何东西。

To send an Javascript object via form data with XMLHttpRequest, you'll need to JSON stringify it: 要使用XMLHttpRequest通过表单数据发送Javascript对象,您需要对其进行JSON字符串化:

var obj = {
    "number": 123,
    "string": "Hello World",
    "object": {
        "a": "b"
    }
}
formData.append(JSON.stringify(obj));

More here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify 此处更多内容: https : //developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM