Ajax中contentType和dataType区别

Posted 键盘tops舞者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax中contentType和dataType区别相关的知识,希望对你有一定的参考价值。

一、contentType配置

告诉服务器,要发什么类型的数据 ,定义request的数据类型。包含如下4种类型:

    1. 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 转码。大部分服务端语言都对这种方式有很好的支持。 

    1. multipart/form-data

文件类型

  使用表单上传文件时,就要让 form 的 enctype 等于这个值

    1. application/json

json类型

告诉服务端消息主体是序列化后的 JSON 字符串。

由于 JSON 规范的流行,除了低版本 IE 之外的各大浏览器都原生支持 JSON.stringify,服务端语言也都有处理 JSON 的函数,使用 JSON 不会遇上什么麻烦。JSON 格式支持比键值对复杂得多的结构化数据。

    1. 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的区别

Ajax中contentType和dataType区别

jquery ajax中的DataType vs ContentType [重复]

ajax请求中contentType与dataType区别

Ajax参数contentType和dataType及traditional说明

$.ajax 中的contentType 坑坑