我有一个文本区域:
<textarea cols="20" id="testtextbox" name="testtextbox" rows="2">test</textarea>
我通过构建 FormData 对象来发布它:
var newForm = $('<form></form>').append($("#testtextbox"))
var formdata = new FormData(newForm.get(0));
var xhr = new XMLHttpRequest();
xhr.open('POST', '/', true);
xhr.send(formdata);
JSF 在这里 https://jsfiddle.net/7ewnxvgo/3/
我希望这会发布该文本区域的值,该文本区域适用于 Chrome 和 Firefox。
但是,在 Edge 42.17134 上,POST 请求正文为:
-----------------------------7e2203930476
Content-Disposition: form-data; name="testtextbox"
-----------------------------7e2203930476--
这在以前版本的 Edge 中也能正常工作。
难道我做错了什么?据我所知,我不依赖任何已弃用的功能。
根据您的描述和代码,建议您检查一下关于formdata的官方API https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects并按以下两种方式修改您的代码。
1.使用formdata.append发布值
<textarea cols="20" id="testtextbox" name="testtextbox" rows="2">test</textarea>
<script type="text/javascript">
var formdata = new FormData();
formdata.append("testtextbox", testtextbox.value);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/', true);
xhr.send(formdata);
</script>
结果:第一种方式 https://i.stack.imgur.com/V9MXF.jpg
2.在页面主体中添加表单
<form id="form1" name="form1">
<textarea cols="20" id="testtextbox" name="testtextbox" rows="2">test</textarea>
</form>
<script type="text/javascript">
$(function () {
var newForm = $("#form1");
var formdata = new FormData(newForm.get(0));
var xhr = new XMLHttpRequest();
xhr.open('POST', '/', true);
xhr.send(formdata);
})
</script>
结果:第二种方式 https://i.stack.imgur.com/LyZmb.jpg
此致,
Jenifer
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)