【发布时间】:2013-11-08 01:56:14
【问题描述】:
我有一个包含文件的表单,所以我使用 XMLHttpRequest 来处理数据的发送。
我想要做的是能够发送将由服务器端的杰克逊解析的对象。就像你对 json 所做的那样。
例如:
{ "number": 123, "string": "Hello World", "object": { "a": "b" }
}
所以我想创建“对象”。据我所知,我只能用
做“数字”和“字符串” formData.append("string", "Hello World");
有办法格式化吗?
当我只是附加一些 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内容配置:表单数据;名称="arrayOfElements" {"0":{"id":2,"type":"dfsdf","url":"sdfsdff","version":"asdasd"}}
这显然不会在服务器端被解析成任何东西。
【问题讨论】:
-
您的
WebKitFormBoundary示例与您的 javascript 不完全匹配,但假设 JSON 字符串以您所描述的大致形式使其成为服务器端,那么它显然“不会被解析”进入服务器端的任何东西”?您将此问题标记为 Jackson,因此我假设您的服务器端是 Java。您是否想弄清楚如何使用 Jackson 解析 POST 数据和 JSON 解析 POST 字符串?
标签: javascript json spring xmlhttprequest jackson