您的位置:首页 > 理论基础 > 计算机网络

http头部content-type与数据格式

2016-11-02 16:52 330 查看
http 头部中的 content-type  和我们传递的数据是息息相关的,不同的取值,服务器解析处理方式不同,

介绍一下几种常见的方式

text/plain:ajax默认方式,将文件设置为纯文本的形式,浏览器在获取到这种文件时并不会对其进行处理(最原始的流)



application/x-www-form-urlencoded :
form表单默认的方式,在$.ajax中如果未设置contentType默认也会以这种方式, 在servlet中的把对应的key、value进行相应的处理添加到Map中,所有才能通过request.getParameter()获取,在servlet中的request.getParameter()只能取到
在url 后面的参数与 这种方式提交的数据,



  注意: 这种方式传递的数据千万不能乱用JSON.Stringify()格式化,只能传入原始对象(LZ开始就犯了这样的错,导致取不到值)

var  info={
"name":"yhy",
age:22
}
$.ajax({
url: 'ddds' ,
type: 'post',
data: info,
async: true,
dataType:'json',
success: function (data,state) {
},
error: function (data,state) {
} ,
});
multipart/form-data :多用于文件上传,html5伴随出现的formdata
也正用于此(支持普通表单、文件上传,若是传文件则服务器采用特有formdata的解析方式),传递的时候通过流的形式,数据包的格式也有所不同



注意:这里 传入的数据必须格式化JSON.stringify(),不能直接传入原始对象,servlet中解析的时候通过读流的方式(不包含formdata格式)

StringBuffer json = new StringBuffer();
String line = null;
try{
BufferedReader reader = request.getReader();
while((line=reader.readLine())!=null){
json.append(line);
}
}
catch(Exception e){
System.out.println(e.toString());

}
System.out.println(json.toString());
application/json :这是现在比较常用的方式,在发送数据之前需格式化数据JSON.stringify(),确保格式的正确性,服务器解析方式和上面第二种一样,先获取json字符串在转为JSON对象


y

 $.ajax 中提供了一些其它方式   http://www.cnblogs.com/fuqiang88/p/4618652.html

数据传输通过chrom开发工具可获取到的数据

1、get方式,会在url后面添加参数,并在包含在 Query String parameters 



2、post方式

   a、form-data, 这种设置conten-type为application/x-www-form-urlencoded ,servlet
中可通过request.getParameter()获取

 
 b、Request-Payload,通过输入流来获取,在上面已介绍。

参考文章  http://zccst.iteye.com/blog/2180127
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息