jQuery的ajax里dataType预期服务器返回数据类型

萝らか妹 提交于 2020-02-10 17:14:55

前言:

  jquery异步请求ajax()之dataType参数讲解

 

(1)dataType简介:

从服务器返回你期望的数据类型(意思是指服务器返回数据后,在执行success方法前,前端jquery先对结果转成你设定的数据类型)。如果没有指定,jQuery将尝试通过MIME类型的响应信息来智能判断,例如java服务端设置response.setContentType(MIME)和ajax的属性contentType都可以设置MIME类型,其作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。(一个XML MIME类型就被识别为XML,在1.4中 JSON将生成一个JavaScript对象,在1.4中 script 将执行该脚本,其他任何类型会返回一个字符串)。

 

(2)可用的类型(以及结果作为第一个参数传递给成功回调函数)

"xml": 返回XML文档,可以通过jQuery处理。

"html": 返回纯文本HTML文本;包含的script标签会在插入DOM时执行。

"script": 把响应的结果当作JavaScript 执行,并将其当作纯文本返回。默认情况下会通过在URL中附加查询字符串变量 ,_=[TIMESTAMP], 禁用缓存结果,除非设置了cache参数为true。注意: 在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(愚人码头注:因为将使用DOM的script标签来加载)

"json":把响应的结果当作 JSON 执行,并返回一个JavaScript对象。跨域"json" 请求转换为"jsonp",除非该请求在其请求选项中设置了jsonp:false。JSON 数据以严格的方式解析; 任何畸形的JSON将被拒绝,并且抛出解析错误信息。在jQuery1.9中,一个空响应也将被拒绝;服务器应该返回null或 {}响应代替。

"jsonp": 以 JSONP 的方式载入 JSON 数据块。会自动在所请求的URL最后添加"?callback=?"。默认情况下会通过在URL中附加查询字符串变量 ,_=[TIMESTAMP], 禁用缓存结果,除非设置了cache参数为true。

"text": 返回纯文本字符串。

 

(3)引用W3School对dataType的一段解释

dataType
类型:String

 预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,
 比如 XML MIME 类型就被识别为 XML。
 在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。
 随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:

 "xml": 返回 XML 文档,可用 jQuery 处理。
 "html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
 "script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远    程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
 "json": 返回 JSON 数据 。
 "jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换     ? 为正确的函数名,以执行回调函数。
 "text": 返回纯文本字符串

 

(4)注意

1、dataType不要写成datatype
2、dataType="json",如果服务器端返回的是一个json格式的字符串,Jquery会调用Json.prase()方法将其转换成JSON对象。另外如果服务器端返回的不是json格式的数据,  就会直接进入error函数回调。
3、dataType="text",预计服务器端返回的数据就是纯文本字符串型,json格式数据还是会以json字符串的形式进入success函数回调

 

 

 

 

.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!