当前位置: 首页>前端>正文

jquery 获取response响应 jquery获取数据

load

对于前端只使用静态页面和js的简易方法搭建时,在菜单栏固定的情况下,可以考虑使用load方法切换静态页面。

作用:从服务器加载数据,并把返回的数据放置到指定的元素中。

语法:$(selector).load(url,data,function(response,status,xhr))

url是指要导入文件的地址。
data:可选参数;因为load不仅仅可以导入静态的html文件,还可以导入动态脚本,可以把要传递的参数放在这里。
function:可选参数;是指调用load方法并得到服务器响应后,再执行的另外一个函数。

  在WEB开发中异步请求方式普遍使用,ajax技术减少程序员的工作量,也提升用户交互体验。AJAX的四种异步请求方式都能实现基本需求,闲话不多说,直接切入正题。

1.$.getJSON

  $.getJSON()是专门为ajax获取json数据而设置的,并且支持跨域调用,其语法的格式为:

1 $.getJSON(
2       url,                 //请求URL
3       [data],           //传参,可选参数
4       [callback]       //回调函数,可选参数
5    );

  url:string类型, 发送请求地址 
  data :可选参数, 待发送 Key/value 参数 ,同get,post类型的data
  callback :可选参数,载入成功时回调函数,同get,post类型的callback

  JSON是一种理想的数据传输格式,它能够很好的融合与JavaScript或其他宿主语言,并且可以被JS直接使用。使用JSON相比传统的通过 GET、POST直接发送“裸体”数据,在结构上更为合理,也更为安全。至于jQuery的getJSON()函数,只是设置了JSON参数的 ajax()函数的一个简化版本。这个函数也是可以跨域使用的,相比get()、post()有一定优势。另外这个函数可以通过把请求url写 成"myurl?callback=X"这种格式,让程序执行回调函数X。

  特别注意:$.getJSON是以GET方式提交数据,所以不能提交过大的数据量,可选$.post。至于如何修改为可用POST方式提交或者扩大GET提交数据量的问题,没有深入研究。

1 //——项目中的实际案例
 2 function changeAnswerShow(id){
 3     $.getJSON(
 4             "/legalconsult/admin/changeshowanswer?callback=?",{id:id},    //URL和参数
 5             function(data){
 6              if(data.error==0){                    //回调函数,与后台交互
 7                 showSuccessMessage("操作成功,正在刷新。。。。");
 8                 setTimeout("window.location.reload()",2200);
 9                 var i=$("td.show"+id+" a i" );
10                 if(i.hasClass("splashy-gem_okay")){
11                     i.removeClass("splashy-gem_okay").addClass("splashy-gem_remove");
12                 }else{
13                    i.removeClass("splashy-gem_remove").addClass("splashy-gem_okay");
14                 }
15                 return true;
16              }else{
17                 showErrorMessage(data.error);
18                 return false;
19              }
20            }
21        );
22 }

 

  2.$.get

  $.get是以GET方式实现AJAX请求,在提交短数据时可用。但我基本不常用,因为$.getJSON完全满足功能需要,正如上所说,结构合理、更加安全。即便是为了提交长数据,也不会选用$.get,而是$.post。但还是要了解其 用法:

1 $.get(
2      url,
3      [data],
4      [ callback]
5  ;)

  url:string类型,ajax请求的地址。

  data:可选参数,object类型,发送至服务器的key/value数据会作为QueryString附加到请求URL中。

  callback:可选参数,function类型,当ajax返回成功时自动调用该函数。

 

1 //项目案例
 2 $.get(
 3         "/legalconsult/answer/focus",
 4         {id:id},
 5         function(data){
 6             if(data.error==0){
 7                  var su=$("#focus_"+id).text();
 8                  su=parseInt(su);              
 9                  su++;
10                  $("#focus_"+id).text(su);      //后台操作成功后返回error==0,在这里进行前端操作
11                  var i=$("#show_"+id);
12                  var j=$("<span><p class='icon-ok'></p>已赞同</span>");
13                  i.empty().append(j);
14                  return true;
15             }else{
16                 showError(data.error);      //调用其它函数,读者可忽视
17                 return false;
18             }
19         }
20 );

 

3.$.post

  我在提交评论或者留言之类的数据时经常使用$.post,不废话上代码:

1 $.post(
2     url,
3     [data],
4     [callback],
5     [type]
6 );

url:string类型,ajax请求的地址。

data:可选参数,object类型,发送至服务器的key/value数据会作为QueryString附加到请求URL中。

callback:可选参数,function类型,当ajax返回成功时自动调用该函数。

type:type为请求的数据类型,可以是html,xml,json等类型,如果我们设置这个参数为:json,那么返回的格式则是json格式的,如果没有设置,就和$.get()返回的格式一样,都是字符串的。

这个方法和$.get()用法差不多,唯独多了一个type参数,那么这里就只介绍type参数吧,其他的参考上面$.get()的。

 

1 //实际项目案例
 2 function changeMarkShow(id){
 3      $.post(
 4              "/legalconsult/admin/markquestion",{id:id},
 5              function(data){
 6                  if(data.error==0){
 7                      showSuccessMessage("操作成功,正在刷新。。。。");
 8                      setTimeout("window.location.reload()",2200);
 9                      var i=$("td.markshow"+id+" a i" );
10                      if(i.hasClass("splashy-star_full")){
11                          i.removeClass("splashy-star_full").addClass("splashy-gem_empty");
12                      }else{
13                          i.removeClass("splashy-gem_empty").addClass("splashy-gem_full");
14                      }
15                      return true;
16                      }else{
17                          showErrorMessage(data.error);
18                          return false;
19                      }
20                 },
21             "json"                                             //声明数据格式
22              );
23 }

 

4.$.ajax

  $.ajax是一种常用的普通封装异步方式。

1 $.ajax(options);

  options是一个object类型,它指明了本次ajax调用的具体参数。呈上代码:

 

1 //示例
 2 .ajax(
 3             url: "/legalconsult/layer/update-info",
 4             datatype:"json",
 5             type:'post',
 6             beforeSend:function(){
 7                             //函数体,数据发送前执行。
 8                      }
 9                       success:function(){
10                             //函数体,数据发送成功回调
11                           }
12                       error: function(){
13                             //函数体,数据发送错误时执行
14                             }
15          );

注意 : $.ajax也能做跨域请求,但还是只能做get请求方式,其实等同于$.getJSON

一句话, $.getJSON(跨域)、$.get、$.post都可以用$.ajax来实现.

1 $.ajax({
 2     type:"get",    //请求方式
 3     async:true,    //是否异步
 4     url:"http://www.domain.net/url",
 5     dataType:"jsonp",    //跨域json请求一定是jsonp
 6     jsonp: "callbackparam",    //跨域请求的参数名,默认是callback
 7         //jsonpCallback:"successCallback",    //自定义跨域参数值,回调函数名也是一样,默认为jQuery自动生成的字符串
 8     data:{"query":"civilnews"},    //请求参数
 9 
10     beforeSend: function() {
11         //请求前的处理
12     },
13 
14     success: function(data) {
15         //请求成功处理,和本地回调完全一样
16     },
17 
18     complete: function() {
19         //请求完成后处理(无论请求成功还是失败)
20     },
21 
22     error: function() {
23         //请求出错处理
24     }
25 });

https://www.xamrdz.com/web/2p71964489.html

相关文章: