如何创建 XMLHttpRequest FormData 表单对象
How to create a XMLHttpRequest FormData form object
我有一个包含文件的表单,所以我使用 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
Content-Disposition: form-data; name="arrayOfElements" {"0":{"id":2,"type":"dfsdf","url":"sdfsdff","version":"asdasd"}}
这显然不会在服务器端解析为任何内容。
要使用XMLHttpRequest通过表单数据发送Javascript对象,您需要将其字符串化:
var obj = {
"number": 123,
"string": "Hello World",
"object": {
"a": "b"
}
}
formData.append(JSON.stringify(obj));
更多内容: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
相关文章:
- XMLHttpRequest未返回值-状态202
- XMLHttpRequest在移动设备上的chrome上不起作用
- AJAX简单错误.XMLHttpRequest无法加载http://localhost/mpl/getPage.php.
- 检查xmlhttprequest问题的消息
- 主线程上的同步XMLHttpRequest已弃用
- 如何定期发出xmlhttprequest
- javascript第三个XMLHttpRequest被拒绝.但前两个是允许的
- 上传带有XMLHttprequest的文件-多部分/表单数据中缺少边界
- 对象#<XMLHttpRequest>没有方法'完成'
- 在XMLHttpRequest之后重新初始化jQuery
- 如何将GreaseMonkey中的XMLHttpRequest延迟到目标页面加载完成
- Javascript XMLHttpRequest——只有第一个POST请求有效
- XMLHttpRequest - difference between Chrome & Firefox
- IE上的新XMLHttpRequest()出现JS Ajax未指定错误
- 非常简单的XMLHttpRequest不起作用
- 如何使用XMLHttpRequest下载文件
- XMLHttpRequest在$.ajax工作的地方给出了CORS错误
- XMLHttpRequest.open()AJAX中的参数url
- XMLHTTPRequest脚本中没有internet连接和超时
- 为什么当async标志设置为false时,xmlhttprequest中的代码可以工作,而当它设置为true时却不能工作