这里我使用的是jquery的ajax方法 包括三个方法 : get() , post(), getJson()
get() 和post()的格式我就使用一下格式,很方便:
$.ajax({ url: '地址, type: 'get或post', data: { //这是要传递的参数,根据自己需求填写 studentNum:123, classId:1, }, //success 方法返回的两个参数,一个是返回的对象,一个是描述状态的字符串,第二个参数一般不用,所以一般就写成 //success:function(json) success: function(json, textStatus) { if(json.success) { //操作; } else { alert(json.msg) } }, error: function() { //操作 }
error 方法返回的参数有三个
error: function (jqXHR, textStatus, errorThrown)
第一个参数 jqXHR jqXHR:这里的jqXHR是一个jqXHR对象,在Jquery1.4和1.4版本之前返回的是XMLHttpRequest对象,1.5版本以后则开始使用jqXHR对象,该对象是一个超集,就是该对象不仅包括XMLHttpRequest对象,还包含其他更多的详细属性和信息。
这里主要有4个属性:
- readyState :当前状态,0-未初始化,1-正在载入,2-已经载入,3-数据进行交互,4-完成。
- status :返回的HTTP状态码,比如常见的404,500等错误代码。
- statusText :对应状态码的错误信息,比如404错误信息是not found,500是Internal Server Error。
- responseText :服务器响应返回的文本信息
第二个参数 String textStatus:返回的是字符串类型,表示返回的状态,根据服务器不同的错误可能返回下面这些信息:"timeout"(超时), "error"(错误), "abort"(中止), "parsererror"(解析错误),还有可能返回空值。
第三个参数 String errorThrown:也是字符串类型,表示服务器抛出返回的错误信息,如果产生的是HTTP错误,那么返回的信息就是HTTP状态码对应的错误信息,比如404的Not Found,500错误的Internal Server Error。
接下来就是getJson();
这就是所谓的跨域请求,也就是JSONP;但是JSONP只能是get()请求,把get()请求稍微改动就JSONP了,代码如下:
只变动了两个地方, dataType 和jsonp
$.ajax({ type : "GET", //传递参数就是在url后面加上?action=getmsg 等等,参数之间用&隔开 最后还要加上callback=? url : "http://active.zol.com.cn/guofeng/profile2.php?action=getmsg&callback=?", dataType : "jsonp", jsonp: 'callback', success : function(json){ $('#msg_box').html(json.msg); } });
另一种就是使用getJson()这个方法。
$.getJSON("http://active.zol.com.cn/guofeng/profile2.php?callback=?", function(data) { $('#result').val('My name is: ' + data.nick); });
记得在url后面加上?callback=? 原理不必知道,这就是规范,知道这样使用就可以了。
最后补充一点,就是ajax的data的一个参数 async
类型:Boolean
默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。
注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行
一个很使用的例子就是 : 用户点击一个按钮,调用一次ajax请求,那么有的用户会着急的时候会连续点击从而造成不必要的问题,只要把async设置成false就行了,用户不管点击多少次,必须这个请求完成之后才会进行下次请求。
ajax详解,以及异步JSOP的实现的更多相关文章
-
AJAX请求详解 同步异步 GET和POST
AJAX请求详解 同步异步 GET和POST 上一篇博文(http://www.cnblogs.com/mengdd/p/4191941.html)介绍了AJAX的概念和基本使用,附有一个小例子,下面 ...
-
$.ajax()方法所有参数详解;$.get(),$.post(),$.getJSON(),$.ajax()详解
[一]$.ajax()所有参数详解 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注 ...
-
Ajax详解及使用Ajax时的返回值类型有哪些?
Ajax详解 Ajax = 异步 JavaScript 和 XML. Ajax 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新.这意味着可以在 ...
-
$.ajax()详解
$.ajax()方法详解 jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Str ...
-
jQuery中$.ajax()详解(转)
JQuery中$.ajax()方法参数详解 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get) ...
-
【面试】详解同步/异步/阻塞/非阻塞/IO含义与案例
本文详解同步.异步.阻塞.非阻塞,以及IO与这四者的关联,毕竟我当初刚认识这几个名词的时候也是一脸懵. 目录 1.同步阻塞.同步非阻塞.异步阻塞.异步非阻塞 1.同步 2.异步 3.阻塞 4.非阻塞 ...
-
Ajax详解
一:什么是Ajax AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法 ...
-
AJAX 详解注释很全来自互联网
1: //用户名校验的方法 2: //这个方法使用XMLHTTPRequest对象进行AJAX的异步数据交互 3: var xmlhttp; 4: function verify(){ 5: //1. ...
-
jquery ajax详解
详细参数列表url:发送请求的连接地址type:请求方式 get:获取 post:发送 put和deletetimeout:设置请求超时时间async:默认true为异步请求,false同步请求锁住浏 ...
随机推荐
-
jython安装
下载了jython后:http://www.cr173.com/soft/9719.html 这是我当时下载的网站 官网很慢开始->运行->cmd->打开dos命令窗口,转到jyth ...
-
Machine Learning &; Data Mining 资料整合
机器学习常见算法分类汇总 | 码农网 数据挖掘十大经典算法 | ****博客 (内含十个算法具体介绍) 支持向量机通俗导论(理解 SVM 的三层境界)| ****博客 (强烈推荐关注博主) 教你如何迅 ...
-
HDU 1162 Eddy's picture
坐标之间的距离的方法,prim算法模板. Eddy's picture Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32 ...
-
android开发之bitmap使用
bitmap是android中重要的图像处理工具类,通过bitmap可以对图像进行剪切.旋转.缩放等操作,同时还可以指定格式和压缩质量保存图像文件. 一.拿到一个Bitmap对象 查看源码我们知道,B ...
-
ecshop网站建设手机版wap版出现lib.debug.php on line 303
首先我们可以看到页面中提示\includes\lib.debug.php on line 303这样的错误,那么我们首先应该找到这个文件的低303行.代码是: $pa = &new Print ...
-
Android属性动画 nineoldandroids
各种资源链接 nineoldandroids 任玉刚的五个图片滑动,点击menu http://blog.****.net/singwhatiwanna/article/details/1763998 ...
-
杭电ACM1007
Quoit Design Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
-
MAC连接安卓手机通过adb指令安装apk
Android的apk可以通过adb命令来安装.在MAC电脑上,如果想通过命令行的方式给安卓手机安装apk,需要做以下操作: 一句话概括就是:将安卓SDK的adb命令添加到环境变量中,然后通过adb ...
-
Hihocoder #1082 : 然而沼跃鱼早就看穿了一切 暴力
时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句子中的沼跃鱼(“marshtomp”,不区 ...
-
Kernel.org 被黑,获取 Android 源码方法一则
8 月底 9 月初,作为 Linux 的老窝,Kernel.org 被黑客攻击了,其攻击原因众说纷纭.一直以来 Linux 对于我来说不是很感兴趣,所以从来不会关注类似事件,可是这次这个攻击,却影响到 ...