jQuery数据交互Ajax

一、Ajax的使用

1.1、load方法:从服务器上获取静态数据文件
<script type="text/javascript">
 $(document).ready(function(){
 // load()方法:jquery中用来请求静态文件的方法,如请求html文档
 // load的参数:
 // url:要请求的静态文件的路径
 // data:要发送给服务器的参数(如果没有传参,则load用get方式请求服务器;如果传了参数,且参数是键值对,则load会转换为post方式请求数据)
 // callback:请求结束时执行的回调函数(不管请求是否成功,都会执行该回调函数)
 $('button').click(function(){
 // load请求下来静态文件后,会直接把该文件拼接进指定的标签中
 // load方法筛选请求内容:在url之后添加要加载的标签的标志(标志可以是tag、class、id),之间使用空格隔开,这样就只能加载到指定的数据

//  $('#news').load('news.html .news1');
// 回调函数中的三个可选参数
// 第一个参数:请求到的数据
// 第二个参数:请求状态
// 第三个参数:jQuery创建出来的请求对象
$('#news').load('news.html h3', function(responseText, responstStatus, responseObj) {
      console.log(responseText);
      console.log(responstStatus);
      console.log(responseObj);
   });
 });
 })
 </script>
1.2、GET和POST方法
<script type="text/javascript">
 $(document).ready(function(){
 // 通过点击按钮请求数据
 $('button').click(function(){
 // .get()用来向服务器发起get请求
 // 第一个参数:请求路径
 // 第二个参数:对象类型的数据,把需要提交给服务器的参数放在这个对象中
 // 第三个参数:回调函数,当请求成功时,会执行该函数,通过这个回调函数拿到请求的值
 // 第四个参数:服务器返回数据的类型(如果我们需要请求的服务器给我们返回的是json数据,则这个参数只能写json)
 $.get('text.json',{name:'zhangsan'}, function(data){
// 通过data参数拿到请求到的值
alert(data);
// 数据提取,并拼接在文档中
 });

 // .post()方法,用来发起post请求。当服务器只能接受post请求时,使用该方法,该方法的用法和参数情况与.get()方法完全一样
 });
 </script>
1.3、ajax方法

$.ajax(options)
参数options是一个对象类型的数据包含

<script type="text/javascript">
 $.ajax({
 // url参数:必填。表示数据接口
 url: 'http://10.0.159.198/news.php',
 // type参数:可选。GET\POST
 // GET:1、参数拼接在URL之后,2、而且参数的大小有限制:2k(服务器端口最多只能接受2k个字节的数据)3、用GET发起的请求数据会在浏览器中缓存
 // POST:1、参数存放在请求头中,2、传递参数的大小没有限制,3、浏览器不会缓存post数据
 type: 'GET',
 // data:可选。把需要提交给服务器的参数用&拼接起来。
 data: 'user=123&pass123',
 // success:可选。表示请求成功的回调函数
 success: function(data) {alert(data.name)},
 // error:可选。表示请求失败的回调函数
//error: function (err) {alert(err)},
 // timeout:可选。设置请求超时时间
 timeout: 3000
 });

使用$.ajax()进行JSONP跨域

<script type="text/javascript">
 $.ajax({
 url: 'http://10.0.159.198/news.php',
 type: 'GET',
 // dataType:表示希望服务器返回的数据类型
 // jsonp:只存在jquery中。
 dataType: 'jsonp',
 // jsonp:表示传递给服务器时回到函数名字值的属性名
 jsonp: 'callbackFun',
 // data:传递参数以及回调函数。回调函数的属性名要和jsonp中指定的一致,回调函数的值用‘?’表示
 data: 'callbackFun=?',
 success: function(data){alert(data.name)}
 })
 </script>
1.4、getJSON方法:专用于加载json文件
<script type="text/javascript">
 $(document).ready(function(){
 // $.getJSON():使用get方式来获取json文件
 // url:请求的数据接口
 // callback:请求成功的回调函数,通过这个函数的参数获取到服务器返回的值
                $.getJSON('text.json',function(data){
                    alert(data);
                });

使用$.getJSON()方法进行JSONP跨域:
// 只需要在url后拼接上回调函数的属性名和属性值即可。属性名后后台人员指定,属性的值可以使一个‘?’,jQuery会自动把这个"?"转化为回调函数的函数名

$.getJSON('http://10.0.159.198/news.php?msg=一条大河波浪宽&callbackFun=?', function (data){
alert(data.msg);
})
});
</script>

二、promiseJS规范使用

什么是promise?

promise对象用来进行延迟(deferred)和异步(asynchronous)计算,执行完$.ajax后返回一个对象,用变量接收这个对象后,可以把不同状态的回调函数添加在这个对象上.

如何使用promise?
var promise = $.ajax({
 type:"get",
 url:"zed.txt",
 async:true
});
promise.done(function(res){alert(res)}).fail(function(err){alert(err)}).always(function)(){console.log('123')});
.done()当数据请求成功后会执行这个方法,并把数据传递进回调函数
.fail()当数据请求失败后会执行这个方法,并把错误传递进回调函数
.always()不论数据请求成功还是失败,都会执行这个方法
为什么要用promise?

使用promise可以为服务器的某一个状态添加多个回调函数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容