IE和FireFox 对FORM enctype属性的认识存在差异

IE和FireFox 对FORM enctype属性的认识存在差异,一般来说对于动态创建的form,如果因为要上传文件的原因很自然的会使用类似如下的代码:

 1  //create form

2  this.form = document.createElement("FORM");
3  this.form.id = "jasonUploadForm";
4  this.form.name = "jasonUploadForm";
5  this.form.method = "post";
6  this.form.action = actionTarget;
7  this.form.enctype = "multipart/form-data";
8  document.body.appendChild(this.form);

 

这段代码表面上看没有什么问题,但在IE中却还是无法改变FORM的编码格式,

也就是说传到服务端的ContentType仍然是:"application/x-www-form-urlencoded”.

但在FireFox中却能正确识别,也就能正常上传文件。

那如何才能使IE和FireFox都能正确按照我们的要求编码FORM 数据呢?找了N久终于找到了解决方案,就是直接指定encoding就行了,且看如下正确的代码:

 

1  //create form
 2  this.form = document.createElement("FORM");
 3  this.form.id = "jasonUploadForm";
 4  this.form.name = "jasonUploadForm";
 5  this.form.method = "post";
 6  this.form.action = actionTarget;     
 7     
 8  //this.form.setAttribute("enctype", "multipart/form-data");
 9  this.form.encoding = "multipart/form-data";
10         
11  document.body.appendChild(this.form);

 

【我也是遇到了上传文件,chrome浏览器可以,但是IE浏览器一直上传失败;就是因为enctype的设置不对;】

posted @ 2019-01-03 15:52  走的慢  阅读(128)  评论(0编辑  收藏  举报