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

1.$.getJSON

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

  

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

  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提交数据量的问题,没有深入研究。

 //——项目中的实际案例
function changeAnswerShow(id){
$.getJSON(
"/legalconsult/admin/changeshowanswer",{id:id},    //URL和参数
function(data){
if(data.error==0){                    //回调函数,与后台交互
showSuccessMessage("操作成功,正在刷新。。。。");
setTimeout("window.location.reload()",2200);
var i=$("td.show"+id+" a i" );
if(i.hasClass("splashy-gem_okay")){
i.removeClass("splashy-gem_okay").addClass("splashy-gem_remove");
}else{
i.removeClass("splashy-gem_remove").addClass("splashy-gem_okay");
}
return true;
}else{
showErrorMessage(data.error);
return false;
}
}
);
}

  2.$.get

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

 $.get(
url,
[data],
[ callback]
;)

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

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

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

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

3.$.post

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

 $.post(
url,
[data],
[callback],
[type]
);

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

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

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

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

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

 //实际项目案例
function changeMarkShow(id){
$.post(
"/legalconsult/admin/markquestion",{id:id},
function(data){
if(data.error==0){
showSuccessMessage("操作成功,正在刷新。。。。");
setTimeout("window.location.reload()",2200);
var i=$("td.markshow"+id+" a i" );
if(i.hasClass("splashy-star_full")){
i.removeClass("splashy-star_full").addClass("splashy-gem_empty");
}else{
i.removeClass("splashy-gem_empty").addClass("splashy-gem_full");
}
return true;
}else{
showErrorMessage(data.error);
return false;
}
},
"json" //声明数据格式
);
}

4.$.ajax

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

 $.ajax(options);

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

 //示例
.ajax(
url: "/legalconsult/layer/update-info",
datatype:"json",
type:'post',
beforeSend:function(){
//函数体,数据发送前执行。
}
success:function(){
//函数体,数据发送成功回调
    }
error: function(){
//函数体,数据发送错误时执行
   }
);

以上是我在做项目时遇到出问题时,通过查资料、测试得出的可行性方法;希望对你有所帮助~~

参考资料:

1.Http同步和异步请求区别  http://kevinpeng.iteye.com/blog/677797

2.W3school http://www.w3school.com.cn/ajax/

3.深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法

http://www.itivy.com/jquery/archive/2011/7/6/jquery-get-post-getjson-ajax.html

简单理解jQuery中$.getJSON、$.get、$.post、$.ajax用法的更多相关文章

  1. input屏蔽历史记录 ;function($,undefined) 前面的分号是什么用处 JSON 和 JSONP 两兄弟 document.body.scrollTop与document.documentElement.scrollTop兼容 URL中的# 网站性能优化 前端必知的ajax 简单理解同步与异步 那些年,我们被耍过的bug——has

    input屏蔽历史记录   设置input的扩展属性autocomplete 为off即可 ;function($,undefined) 前面的分号是什么用处   ;(function($){$.ex ...

  2. ajax和springmvc的请求响应原理——深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法

    1,四大重要部分: 请求链接 post请求和get请求 请求参数形式 响应内容形式 2,从springmvc的controller角度,controller能接收到请求的前提 请求链接必须对应 pos ...

  3. 深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法

    当我们用javascript写ajax程序写得很“开心”的时候,突然有人告诉你有一种东西叫jquery,它会告诉你不直接和HttpRequest是多么的快乐,同时你再也不需要再烦恼纠结的ajax乱码问 ...

  4. 理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法

    ajax的4种方法:$.get.$.post.$getJSON.$ajax. 1.$.get $.get()方法使用GET方式来进行异步请求,它的语法结构为: $.get( url [, data] ...

  5. 关于 Promise 的一些简单理解

    一.ES6 中的 Promise 1.JS 如何解决 异步问题? (1)什么是 同步.异步? 同步指的是 需要等待 前一个处理 完成,才会进行 下一个处理. 异步指的是 不需要等待 前一个处理 完成, ...

  6. 简单理解Struts2中拦截器与过滤器的区别及执行顺序

    简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...

  7. jQuery学习之jQuery Ajax用法详解

    jQuery Ajax在web应用开发中很常用,它主要包括有ajax,get,post,load,getscript等等这几种常用无刷新操作方法,下面我来给各位同学介绍介绍. 我们先从最简单的方法看起 ...

  8. jQuery学习之jQuery Ajax用法详解(转)

    [导读] jQuery Ajax在web应用开发中很常用,它主要包括有ajax,get,post,load,getscript等等这几种常用无刷新操作方法,下面我来给各位同学介绍介绍.我们先从最简单的 ...

  9. jQuery $.post $.ajax用法

    jQuery $.post $.ajax用法 jQuery.post( url, [data], [callback], [type] ) :使用POST方式来进行异步请求 参数: url (Stri ...

随机推荐

  1. Codeforces 1110 简要题解

    文章目录 A题 B题 C题 D题 E题 F题 G题 传送门 众所周知ldxoildxoildxoi这种菜鸡选手是不会写HHH题的,因此该篇博客只有AAA题至GGG题的题解,实在抱歉. A题 传送门 题 ...

  2. Java 208 道面试题:Java 基础模块答案

    目前市面上的面试题存在两大问题:第一,题目太旧好久没有更新了,还都停留在 2010 年之前的状态:第二,近几年 JDK 更新和发布都很快,Java 的用法也变了不少,加上 Java 技术栈也加入了很多 ...

  3. boost-实用工具:noncopyable、optional、assign

    1.noncopyable 让一个类从noncopyable继承可以实现禁止对象的复制,使用需要包含头文件"boost/noncopyable.hpp"或"boost/u ...

  4. CString成员函数详解[转]

    1.构造函数(常用) CString( const unsigned char* psz );      例:char s[]="abcdef";              cha ...

  5. java socket之多人聊天室Demo

    一.功能介绍 该功能实现了一个类似QQ的最简单多人聊天室,如下图所示. 二.目录结构 三.服务端 1)SocketServer类,该类是服务端的主类,主要负责创建聊天窗口,创建监听客户端的线程: pa ...

  6. CentOS7安装MySQL并设置远程登陆

    1 下载并安装MySQL官方的 Yum Repository [root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-commu ...

  7. oracle学习笔记一:用户管理(1)简单的命令

    1,打开操作界面 我们在安装好oracle后可以在两个地方打开要操作的界面.请看图一: 或者在运行窗口输入sqlplus.其实这里也是调用了bin下面的sqlplus.exe. 在打开dos命令行窗口 ...

  8. js 匿名函数 用法

    JS执行顺序为从上到下 先声明存储匿名函数的变量放在JS文件中 <script src="/Scripts/niming.js" type="text/javasc ...

  9. 20155205 2016-2017-2 《Java程序设计》第2周学习总结

    20155205 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 变量 变量在命名时有一些规则,它不可以使用数字作为开头,也不可以使用特殊字符. 对常用忽略符 ...

  10. ArcGIS 关于Web_Mercator

    #小知识#EPSG,即 European Petroleum Standards Group 欧洲石油标准组织 在ArcGIS 10中Web Mercator有三种EPSG编号.他们分别是EPSG38 ...