Ajax中contentType和dataType区别
Posted 键盘tops舞者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax中contentType和dataType区别相关的知识,希望对你有一定的参考价值。
一、contentType配置
告诉服务器,要发什么类型的数据 ,定义request的数据类型。包含如下4种类型:
-
- application/x-www-form-urlencoded
Post键值对类型
这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。
首先,Content-Type 被指定为 application/x-www-form-urlencoded;其次,提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 会进行了 URL 转码。大部分服务端语言都对这种方式有很好的支持。
-
- multipart/form-data
文件类型
使用表单上传文件时,就要让 form 的 enctype 等于这个值
-
- application/json
json类型
告诉服务端消息主体是序列化后的 JSON 字符串。
由于 JSON 规范的流行,除了低版本 IE 之外的各大浏览器都原生支持 JSON.stringify,服务端语言也都有处理 JSON 的函数,使用 JSON 不会遇上什么麻烦。JSON 格式支持比键值对复杂得多的结构化数据。
-
- text/xml
文本或xml类型
相比于JSON,XML不能更好的适用于数据交换,它包含了太多的包装, 而且它跟大多数编程语言的数据模型不匹配,让大多数程序员感到诧异,XML是面向数据的,JSON是面向对象和结构的,后者会给程序员一种更加亲切的感觉。
我们现在一般这样来使用:
1、XML 存储数据,存储配置文件等需要结构化存储的地方使用;
2、数据传输、数据交互使用JSON;
$.ajax(
url:'********',
data: JSON.stringify(a: [b:1, a:1])
contentType: 'application/json',
dataType: 'json',
)
二、dataType
要求为String类型的参数,预期服务器返回的数据类型,定义response的数据类型。如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。可用的类型如下:
2.1 xml
返回 XML 文档,可用 jQuery 处理。
2.2 html
返回纯文本 html 信息;包含的 script 标签会在插入 dom 时执行。
2.3 script
返回纯文本 javascript 代码。不会自动缓存结果。除非设置了 “cache” 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
2.4 json
返回 JSON 数据 。
2.5 jsonp
JSONP 格式。使用 JSONP 形式调用函数时,如 “myurl?callback=?” jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
2.6 text
返回纯文本字符串
请求示例如下:
$.ajax(
url: "XXXX/list",
type: "POST",
data: "'type': " + typeId+"",
contentType: "application/json",
dataType: "json",
async: false,
success: function (data)
);
以上是关于Ajax中contentType和dataType区别的主要内容,如果未能解决你的问题,请参考以下文章
Ajax请求中,contentType和dataType的区别
jquery ajax中的DataType vs ContentType [重复]