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的设置不对;】

原文地址:https://www.cnblogs.com/liuzhongqing/p/10214639.html

时间: 2024-10-13 16:16:08

IE和FireFox 对FORM enctype属性的认识存在差异的相关文章

HTML form enctype 属性试验

HTML form enctype http://www.w3.org/TR/html401/interact/forms.html#h-17.13.1%E2%80%8D enctype= content-type [CI] This attribute specifies the content type used to submit the form to the server (when the value of method is "post"). The default va

HTML <form> 标签的 enctype 属性

在HTML中,form标签用于提交表单.form标签有一个enctype属性. enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码    也就是说,在Form元素的语法中,EncType表明提交数据的格式. enctype属性的取值 序号 值 描述 1 application/x-www-form-urlencoded (1)在发送前,编码所有字符(默认).窗体数据被编码为"名称/值"对,这是标准的编码格式. (2)当action为get时候,浏览器用x-www-fo

Form表单标签的Enctype属性的作用及应用示例介绍

Enctype :指定将数据回发到服务器时浏览器使用的编码类型.用于表单里有图片上传. 编码类型有以下三种: application/x-www-form-urlencoded: 在发送前编码所有字符(默认).这是标准的编码格式. multipart/form-data: 不对字符编码,在使用包含文件上传控件的表单时,必须使用该值. text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符. 例子: <form action="${pageContext.reque

表单中&lt;form&gt;的enctype属性

application/x-www-form-urlencoded.multipart/form-data.text/plain 上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上传表单要这么 写,知其然而不知其所以然.那到底为什么要添加这个属性呢?它是什么意思呢?它又有什么其他可选值呢? 其实form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype=&quo

form表单标签的enctype属性的作用

Enctype是指定将数据回发到服务器时浏览器使用的编码类型,其编码类型有以下三种 一. application/x-www-form-urlencoded 这是通过表单发送数据时默认的编码类型.我们没有在from标签中设置enctype属性时默认就是application/x-www-form-urlencoded类型的.application/x-www-form-urlencoded编码类型会把表单中发送的数据编码为名称/值对.这是标准的编码格式.当表单的ACTION为POST的时候,浏览

form表单中的encType属性

enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码,它有三个值 1.application/x-www-form-urlencoded:表单数据被编码为名称/值对.这是默认的编码方式(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值).使用get方式提交时,把表单数据(name1=value1&name2=value2...)以键值对append到url后,用  '?' 分割url和参数.使用post方式提交时,把表单数据以键值对放在请求体中传

form表单中enctype属性作用

上传文件时,提交的表单属性里需要加enctype="multipart/form-data",才能提交文件信息,不然会报错.那么enctype属性的作用是什么?就是设置表单传输的编码. enctype属性有三种: 1.application/x-www-form-urlencoded 2.multipart/form-data 3.text/plain 其中,第一种是enctype属性的默认值.所以平时不填,其实就是这个值.第二种是用来提交非文本的内容,比如图片,音乐等.第三种是用来提

HTML5 Web Form 新增属性和表单验证

<form>标签的基本属性 1 method属性:指定浏览器向服务器传送数据的方式,可选: 2 action属性:设置服务器接受和处理表单数据的URL: 3 enctype属性:制定表单数据在发送到服务器之前进行编码的编码方式: 4 accept属性:指定能够通过文件上传进行提交的文件类型: 5 accept-charset属性:指定服务器处理表单数据所接收的字符集: 6 target属性:制定浏览器在提交表单后生成的页面在哪个框加载或在哪个窗口显示: 7 id属性:用来识别网页中的form标

Form.KeyPreview 属性

Form.KeyPreview 属性 今天再做KeyDown 和 KeyUp 事件时,就是忘了设置,窗体的KeyPreview 属性,所以KeyDown 和 KeyUp 事件没有反应(这里说明一下,本人使用的是自定义控件,如果是窗体控件就没有问题的.具体原因,下面会有解释.) 获取或设置一个值,该值指示在将键事件传递到具有焦点的控件前,窗体是否将接收此键事件. 命名空间:System.Windows.Forms程序集:System.Windows.Forms(在 system.windows.f