Javascript Ajax——无法将数据作为“发送”;x-www-form-urlencoded“;
尽管我已经指定了内容类型,Javascript Ajax——无法将数据作为“发送”;x-www-form-urlencoded“;,javascript,ajax,Javascript,Ajax,尽管我已经指定了内容类型,XMLHttpRequest仍在multipart/formdata中发送数据: var xhr = new XMLHttpRequest(); xhr.open('POST', 'url', true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function(e) { //.......... //.
XMLHttpRequest
仍在multipart/formdata
中发送数据:
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
这是多部分/表单数据
没有jquery。来自:
表单数据让请求实体体是运行多部分/表单数据编码算法的结果,其中数据作为表单数据集,utf-8作为显式字符编码
因此,
FormData
将始终使用多部分编码对数据进行编码。除了用自己的代码构造x-www-form-urlencoded
字符串(即不使用FormData
)之外,你没有别的办法。有帮助吗?@JaromandaX,没有,因为我使用FormData.well then read-这表明传输的数据与表单的submit()格式相同如果表单的编码类型设置为“multipart/form data”,则方法将用于发送数据。
@Mook-如果表单的编码类型设置为[that],则方法将用于发送数据。是否读取了第二个链接?你看过昆汀的答案了吗。。。使用FormData
会导致Content-Type=multipart/form-data
-没有办法it@Mook-因为我在回答中引用的规范明确说明了这一点。