jquery中的$.post()方法最后一个参数。

$.post(url,data,success(data, textStatus, jqXHR),dataType),

最后一个参数是数据类型,但是是可选的,如果不传递这个参数,那默认的数据格式是什么?

$.ajax()函数依赖服务器提供的信息来处理返回的数据。如果服务器报告说返回的数据是XML,那么返回的结果就可以用普通的XML方法或者jQuery的选择器来遍历。如果见得到其他类型,比如HTML,则数据就以文本形式来对待。

通过dataType选项还可以指定其他不同数据处理方式。除了单纯的XML,还可以指定 html、json、jsonp、script或者text。

其中,text和xml类型返回的数据不会经过处理。数据仅仅简单的将XMLHttpRequest的responseText或responseHTML属性传递给success回调函数,

注意,我们必须确保网页服务器报告的MIME类型与我们选择的dataType所匹配。比如说,XML的话,服务器端就必须声明
text/xml 或者 application/xml 来获得一致的结果。

如果指定为html类型,任何内嵌的JavaScript都会在HTML作为一个字符串返回之前执行。类似的,指定script类型的话,也会先执行服务器端生成JavaScript,然后再把脚本作为一个文本数据返回。

如果指定为json类型,则会把获取到的数据作为一个JavaScript对象来解析,并且把构建好的对象作为结果返回。为了实现这个目的,他首先尝试使用JSON.parse()。如果浏览器不支持,则使用一个函数来构建。JSON数据是一种能很方便通过JavaScript解析的结构化数据。如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型。使用这种类型的话,会创建一个查询字符串参数
callback=?
,这个参数会加在请求的URL后面。服务器端应当在JSON数据前加上回调函数名,以便完成一个有效的JSONP请求。如果要指定回调函数的参数名来取代默认的callback,可以通过设置$.ajax()的jsonp参数。

注意,JSONP是JSON格式的扩展。他要求一些服务器端的代码来检测并处理查询字符串参数。更多信息可以参阅 最初的文章。

如果指定了script或者jsonp类型,那么当从服务器接收到数据时,实际上是用了<script>标签而不是XMLHttpRequest对象。这种情况下,$.ajax()不再返回一个XMLHttpRequest对象,并且也不会传递事件处理函数,比如beforeSend。

上面是官方的解说,但是在实际应用中,用得最多的就是html和json,如果是html,那么返回的数据直接插入或打印在某个地方就可以了,浏览器会照样解析;

如果是json,会复杂点,首先要先对json数据进行处理一遍,我的理解的话,json跟数组很像,所以传回来的数据要先处理一遍才能用,建议找一些jquery的get和post的教程来看看。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-02-10

你好,默认的数据格式是取决于所返回的内容,在jquery中对返回值类型有以下描述

6描述:


向页面 test.php 发送数据,并输出结果(HTML 或 XML,取决于所返回的内容):
jQuery 代码:
$.post("test.php", { name: "John", time: "2pm" },
   function(data){
     alert("Data Loaded: " + data);
   });
7描述:
获得 test.php 页面的内容,并存储为 XMLHttpResponse 对象,并通过 process() 这个 JavaScript 
函数进行处理:
jQuery 代码:
$.post("test.php", { name: "John", time: "2pm" },
   function(data){
     process(data);
   }, "xml");
8描述:
获得 test.php 页面返回的 json 格式的内容::
jQuery 代码:
$.post("test.php", { "func": "getNameAndTime" },
   function(data){
     alert(data.name); // John
     console.log(data.time); //  2pm
   }, "json");

希望可以帮助到你

本回答被网友采纳
第2个回答  推荐于2017-09-04

默认是字符串类型,可选json类型

$.post('/url.html',{d:'d'},function(){ })
// 默认字符串
$.post('/url.html',{d:'d'},function(){ },'json')
// www.hi-docs.com/jquery/$.post.html

追问

一次传递很多个值的时候,也是字符串类型的吗,如果改为json格式,在服务端接受数据的形式需要改变吗? 比如说默认情况下我用$_post就可以接收到,如果该为json格式的,如何接收数据

追答

注意,它只是设置返回的数据是什么格式,不关你传递多少个值的问题,接收数据不变,只是读取的时候要用json的格式来读取,如果你服务器返回的不是json格式的数据,dataType又设置为json是不行的

本回答被提问者采纳
第3个回答  2018-08-04

是text文本数据。

$.ajax()函数依赖服务器提供的信息来处理返回的数据。如果服务器报告说返回的数据是XML,那么返回的结果就可以用普通的XML方法或者jQuery的选择器来遍历。如果见得到其他类型,比如HTML,则数据就以文本形式来对待。

通过dataType选项还可以指定其他不同数据处理方式。除了单纯的XML,还可以指定 html、json、jsonp、script或者text。

其中,text和xml类型返回的数据不会经过处理。数据仅仅简单的将XMLHttpRequest的responseText或responseHTML属性传递给success回调函数。

注意,我们必须确保网页服务器报告的MIME类型与我们选择的dataType所匹配。比如说,XML的话,服务器端就必须声明text/xml 或者 application/xml 来获得一致的结果。

如果指定为html类型,任何内嵌的JavaScript都会在HTML作为一个字符串返回之前执行。类似的,指定script类型的话,也会先执行服务器端生成JavaScript,然后再把脚本作为一个文本数据返回。

如果指定为json类型,则会把获取到的数据作为一个JavaScript对象来解析,并且把构建好的对象作为结果返回。为了实现这个目的,他首先尝试使用JSON.parse()。

如果浏览器不支持,则使用一个函数来构建。JSON数据是一种能很方便通过JavaScript解析的结构化数据。如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型。