ajax中的application/x-www-form-urlencoded中的使用一,HTTP上传的基本知识
在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。下边是说明: application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。 multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。 text/plain:窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。
补充
form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application /x-www-form-urlencoded。
当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1& amp; amp;name2=value2...),然后把这个字串append到url后面,用?分割,加载这个新的url。当action为post时候,浏览器把form数据封装到http body中,然后发送到server。如果没有type=file的控件,用默认的application/x-www-form-urlencoded就可以了。但是如果有 type=file的话,就要用到multipart/form-data了。浏览器会把整个表单以控件为单位分割,并为每个部分加上 Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件 name)等信息,并加上分割符(boundary)。

二,使用中需要注意的地方在AJAX往服务器上传数据是,设置了content-type为application/x-www-form-urlencoded,此时是对整个发 送内容作了编码,并不是对名字对应的值做了编码。因此,在服务器端,通过request.getParameter("name")的方式取值,是有问题 的。
有两种解法办法:1)改服务器端: 采用流的方式硬编码InputStream stream=request.getInputStream();
InputStreamReader isr=new InputStreamReader(stream);
BufferedReader br=new BufferedReader(isr);
String str=br.readLine();
System.out.println(str);str=URLDecoder.decode(str,"gb2312");
System.out.println(str);
br.close();2)改客户端:更改数据发送结构在往服务器上发数据的时候,使用name=escape(value)的方式组对此时在服务器代码中,通过request.getParameter("name")获得的数值,就不用编码了

转载于:https://www.cnblogs.com/shaoshao/p/3398991.html

ajax中的application/x-www-form-urlencoded中的使用相关推荐

  1. 【Android 安全】DEX 加密 ( Application 替换 | 替换 LoadedApk 中的 Application mApplication 成员 )

    文章目录 一. 当前 Application 替换进度 二. 替换 LoadedApk 中的 Application mApplication 成员 一. 当前 Application 替换进度 上一 ...

  2. Http请求中Content-Type讲解以及在Spring MVC中的应用

    引言: 在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值 ...

  3. [转]Http请求中Content-Type讲解以及在Spring MVC中的应用

    本文转自:http://blog.csdn.net/blueheart20/article/details/45174399 引言: 在Http请求中,我们每天都在使用Content-type来指定不 ...

  4. 解析ajax数据显示到from表单中,jQuery Ajax从另一页上的Form请求中提取数据?

    我想用jQuery和ajax抓取页面的一些元素......没问题.但是,直到用户单击表单中的按钮时才会显示这些元素,因此除非执行该操作,否则实际上我无法从页面中取出任何内容.任何人都知道这可以实现吗? ...

  5. ajax_contenttype,$.ajax中contentType: “application/json” 的用法详解

    具体内容如下所示: $.ajax({ type: httpmethod, cache:false, async:false, contenttype: "application/json; ...

  6. springboot yml怎么建常量_【Java】SpringBoot 中从application.yml中获取自定义常量

    由于这里我想通过java连接linux,connection连接需要host.port.username.password及其他路径等等.不想每次修改的时候都去改源文件,所以想写在applicatio ...

  7. 用JQuery中的Ajax方法获取web service等后台程序中的方法

    用JQuery中的Ajax方法获取web service等后台程序中的方法 1.准备需要被前台html页面调用的web Service,这里我们就用ws来代替了,代码如下: using System; ...

  8. get 与 post的区别?application json 与form表单的区别?

    这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能,本篇分享的是: [get 与 p ...

  9. ajax异步获取数据后动态向表格中添加数据的页面

    因为某些原因,项目中突然需要做自己做个ajax异步获取数据后动态向表格中添加数据的页面,网上找了半天都没有 看到现成的,决定自己写个例子 1.HTML页面 [html] view plaincopyp ...

  10. ajax异步获取数据后动态向表格中添加数据(行)

    因为某些原因,项目中突然需要做自己做个ajax异步获取数据后动态向表格中添加数据的页面,网上找了半天都没有 看到现成的,决定自己写个例子 1.HTML页面 [html] view plaincopyp ...

最新文章

  1. VC.NET扩展Windows磁盘清理工具的功能
  2. 开发健壮的企业级应用的研究
  3. mysql创建用户以及授权
  4. 使用EL表达式接收url的传值
  5. 解决mysql表不能查询修改删除等操作并出现卡死
  6. 腾讯云搭svn服务器,腾讯云使用笔记二: 安装svn服务器及web同步
  7. c++ string后面会添加‘\0‘
  8. weblogic命令行操作
  9. 用C#写XML类型的配置文件:
  10. Java编程基础知识(一)
  11. 开源控件My97DatePicker的基本用法
  12. C++ gflags
  13. 笔记本电脑打开计算机里面会跳,笔记本电脑为什么闪屏_笔记本电脑闪屏的原因及处理方法...
  14. FTP报550异常-Create directory operation failed
  15. 宿主机无法访问虚拟机web服务器,宿主机无法访问虚拟机中的docker容器怎么办_网站服务器运行维护,宿主机,虚拟机,docker...
  16. 转换上课周次字符串(我带着困惑我一周之久的编程题来了)
  17. IIS 设备未就绪。
  18. 让你的应用完美适配平板
  19. 如何使用html实现在线秒表,请使用js实现一个秒表计时器的程序
  20. y5_运五飞机最新改进型号——Y5BG

热门文章

  1. php-5.6.26源代码 - hash存储结构 - hash算法
  2. BZOJ 4520: [Cqoi2016]K远点对
  3. 【转载】快速掌握一个语言最常用的50%
  4. 使用awk进行文本处理
  5. 《Netty Zookeeper Redis 高并发实战》 图书简介
  6. ZOJ - 4114 Flipping Game
  7. java 生成jar包并保留注释
  8. Android进阶笔记18:Android 获取Button的高度、宽度、坐标值
  9. 《C++ Primer Plus》学习笔记0
  10. UNIX网络编程卷1 时间获取程序server UDP 协议无关