jquery中的$.post()方法最后一个参数。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery中的$.post()方法最后一个参数。相关的知识,希望对你有一定的参考价值。
$.post(url,data,success(data, textStatus, jqXHR),dataType),
最后一个参数是数据类型,但是是可选的,如果不传递这个参数,那默认的数据格式是什么?
通过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的教程来看看。 参考技术A
你好,默认的数据格式是取决于所返回的内容,在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");
希望可以帮助到你
参考技术B默认是字符串类型,可选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是不行的
本回答被提问者采纳 参考技术C是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类型。
jquery中的ajax参数
jquery中将ajax封装成了函数,我们使用起来非常方便,jquery会自动根据内容选择post还是get方式提交数据,并且会自动编码,但是要想完全掌握jquery中的ajax,我们必须将它的各个参数记住:
1、url strng 发送请求的地址
2、type string 请求方式(post或get,默认get),其他http请求方法,比如:put和delete也可以使用,但只有部分浏览器支持。
3、timeout number 设置请求超时时间(毫秒)。此设置将覆盖全局设置。
4、async bollean 是否异步请求,默认情况下为true。
5、beforeSend function 发送请求前可以修改XMLHttpRequest对象的函数,比如自定义http请求头,在beforeSend中如果返回false可以取消本次ajax请求。XMLHttpRequest对象是唯一的参数。
function(XMLHttpRequest){
this;//调用本次ajax请求时传递的参数option;
}
6、complete function 请求完成后的回调函数,不管请求成功或者失败都会调用;它的参数是XMLHttpRequest对象一级成功信息字符串。
function(XMLHttpRequest,textStatus){
this;//调用本次ajax请求时传递的参数option;
}
7、contentType string 默认是:("application/x-www-form-urlencoded");为发送信息至服务器时内容的编码类型。默认值适合大多数应用场合。
8、data object,string 传递给服务器的数据,将自动转换为请求字符串格式。get请求会把它附加在url后面,查看processData选项说明以禁止此自动转换。必须为键值对格式,如果为数组,jquery将自动为不同的值对应同一个名称。如{foo:["bar1",bar2]}转换为"&foo=bar1&foo=bar2";
9、dataType string 预期处理服务器返回的数据类型。如果不指定,jq将自动根据http包MIME信息返回responseXML或resonseText,并作为回调函数参数传递,可用值:
"xml":返回XML文档,可用jq处理。
"html":返回纯文本的HTML信息,包含script;
"script":返回纯文本javascript代码,不会自动缓存结果;
"json":返回JSON数据;
"jsonp":JSONP格式;使用JSONP形式电泳函数是,如"myurl?callback=?";jq将会自动替换?为正确的函数名,以执行回调函数。
10、error function 请求失败时将调用此方法。这个方法有三个参数:
XMLHttpRequest
对象,
错误信息,(可能)捕获的错误对象;
function(XMLHttpRequest,textStatus,errorThrown){
//通常情况下,textStatus和errorThrown
this;//调用本次ajax请求时传递的参数option;只有其中一个有值;
}
11、global bollean 是否触发全局ajax事件,默认true,设置为false将不会触发全局ajax事件,如ajaxStart或ajaxStop。可用于控制不同的ajax事件。
12、ifModified bollean 仅在服务器数据改变时获取新数据(默认false)。根据http包Last-Modified头信息判断。
13、processData bollean 默认情况下,发送的数据将会被转化成对象(技术上讲并非字符串)一配合默认内容类型:"application/x-www-form-urlencoded"。如果要发送DOM数信息或其他不希望转换的信息,设为false。
14、success function 请求成功偶的回调函数。这个方法有两个参数:服务器返回数据,返回状态:
function(data,textStatus){
// data could be xmlDoc, jsonObj, html, text, etc..
this; // the options for this ajax request
}
代码如下:
$(function(){
$(‘#send‘).click(function(){
$.ajax({
type: "GET",
url: "test.json",
data: {username:$("#username").val(), content:$("#content").val()},
dataType: "json",
success: function(data){
$(‘#resText‘).empty(); //清空resText里面的所有内容
var html = ‘‘;
$.each(data, function(commentIndex, comment){
html += ‘<div class="comment"><h6>‘ + comment[‘username‘]
+ ‘:</h6><p class="para"‘ + comment[‘content‘]
+ ‘</p></div>‘;
});
$(‘#resText‘).html(html);
}
});
});
});
jq中的ajax是面试官喜欢问的问题,也是实际工作中会经常遇到的,需要牢牢记住!
以上是关于jquery中的$.post()方法最后一个参数。的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript/jQuery:将多个参数传递给 API 中的 POST 请求