第二.【$.get()和$.post()方法】
.load()方法是局部方法(有需要父$),因为他需要一个包含元素的 jQuery 对象作为前缀。而$.get()和 $.post()是全局方法,无须指定某个元素。
(1)$.get()方法有四个参数,前面三个参数和.load()一样,多了一个第四参数 type,即服务器返回的内容格式:包括 xml、html、script、json、jsonp 和 text。第一个参数为必选参数, 后面三个为可选参数。
(1.1)//使用$.get()异步返回 html 类型。
//HTML 展示的页面(我们可见的部分) <input type="button"value="异步获取数据"/> <div id="box"></div>
$('input').click(function() { $.get('test.php', { url:'www.www' },function(response,status,xhr) { if(status=='success') { $('#box').html(response); } }) //type 自动转为 html });
注意:第四参数 type 是指定异步返回的类型。一般情况下 type 参数是智能判断,并不 需要我们主动设置,如果主动设置,则会强行按照指定类型格式返回。
(1.2)//使用$.get()异步返回 xml。
$('input').click(function() { $.get('test.xml',function(response,status,xhr) { $('#box').html($(response).find('root').find('url').text()); }); //type 自动转为 xml });
注意:如果载入的是 xml 文件,type 会智能判断。如果强行设置 html 类型返回,则会 把 xml 文件当成普通数据全部返回,而不会按照 xml 格式解析数据。
(1.3)//使用$.get()异步返回 json。
$.get('test.json',function(response,status, xhr) { alert(response[0].url); });
$.post()方法的使用和$.get()基本上一致,他们之间的区别也比较隐晦,基本都是背后的不同,在用户使用上体现不出。具体区别如下:
1.GET 请求是通过 URL 提交的,而 POST 请求则是 HTTP 消息实体提交的;
2.GET 提交有大小限制(2KB),而 POST 方式不受限制;
3.GET 方式会被缓存下来,可能有安全性问题,而 POST 没有这个问题; 4.GET 方式通过$_GET[]获取,POST 方式通过$_POST[]获取。
(1.4)使用$.post()异步返回 html 。
$.post('test.php', { url:'www.www' },function(response,status,xhr) { $('#box').html(response); });