jq中提供了几种方式调用ajax从低到高实现了不同的封装。
1:load(url [,data] [,callback])
参数说明
url 需要载入的html地址, 此参数可以过滤被加载的html。
使用形式为load('url select'),select是一个选择器。可以指定标签id类等
data(可选) 发送到服务器的key/value数据当指定此参数时使用的post。
数据格式{name:'superman',age:'25'}
callback(可选) 请求结束时调用的函数,无论成否。
此函数提供了三个参数
- responseText :返回被请求的内容
- textStatus:请求的状态(success,error,notmodified,timeout)
- XMLHttpRequest:xmlhttprequest对象
一个简单例子:
$(function(){
$('#load').click(function(){
$('#content').load('./message.html')
})
})
<input type='button' id='load' value='load'>
<div id='content'></div>
在当前目录下新建一个message.html
写入
<p>Hi</p>
当点击load按钮时会看见原来是空的<div>标签 中已经插入了<p>标签。
2:$.post和$.get方法
从调用方式可以看出这两个函数在jq中是全局的。
$.get(url [,data] [,callback] [,type])
参数说明
- url被请求的地址
- data提交的参数 可选
- callback 请求结束时回调函数,只有当response状态是success才会执行。
- type 期望请求地址返回的内容 xml,html,script,json,text,_default
例子:
<input type='submit' value='login'>
<div id ='content'> </div>
$(function(){
$('input').click(
function(){
$.get('./login.php',{user:'admin',pass:'1234'},function(){alert('over')})
}
)
})
$.post
使用的方式和参数和get基本一致,主要还是http实现方式有区别。
- 提交的参数会放在http实体中,get则是跟在url尾部格式为key=v多参数使用&分割,这里会有安全问题因为参数都是使用url提交的所以可以在缓存中查看
- get提交数据是会有大小限制一般为2kb而post则没有
3:$.ajax()
要是以上方法都不能满足需求的话可以选择$.ajax(),这个函数提供更加细致控制ajax方式。由于时间有限下次再写