虽然我已指定了内容类型,但XMLHttpRequest
仍在multipart/form-data
中发送数据:
var xhr = new XMLHttpRequest();
xhr.open('POST', 'url', true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function(e) {
//..........
//..........
xhr.send(new FormData("my_form"));
因为在Chrome开发工具中我看到了这一点:
------WebKitFormBoundaryfdsfdsfdsfds
Content-Disposition: form-data; name="name1"
something1
------WebKitFormBoundaryfdsfdsfdsfds
Content-Disposition: form-data; name="name2"
something2
------WebKitFormBoundaryfdsfdsfdsfds
Content-Disposition: form-data; name="name3"
something3
是multipart/form-data
没有jquery。
答案 0 :(得分:2)
来自the spec:
<强> FORMDATA 强>
让请求实体体是运行multipart / form-data编码算法的结果,数据作为表单数据集,并使用utf-8作为显式字符编码。
因此FormData
将始终使用多部分编码对数据进行编码。除了使用您自己的代码构建x-www-form-urlencoded
字符串(即不使用FormData
)之外,您无能为力。