// 其中,把提交事件写到 success:function 中就可以了
// 如果需要放在 $.ajax() 外面,则需要定义全局变量,另外,需要设置 async:false,这个属性指的是,执行完 $.ajax() 中的所有内容之后,再往下继续执行 if(yes)
$(function(){
// 设置验证不通过
var yes = false
$.ajax({
type: "POST", contentType: "application/jsoncharset=utf-8",
url: url + params, cache: false, async: false, dataType: "json",
success: function (result) {
if(验证通过){
// $("#FormID").submit()
yes = true
}
}
})
if(yes){
$("#FormID").submit()
}
})
代码没有,给checkbox绑定click事件,if checked,获取当前value,采用ajax异步请求,服务器根据value返回json,前台接收并解析json,然后创建节点,绑定数据,插入到前台1、打开与服务器的连接(open)当得到XMLHttpRequest对象后,就可以调用该对象的open()方法打开与服务器的连接了。open()方法的参数如下:
open(method, url, async):
method:请求方式,通常为GET或POST;
url:请求的服务器地址,例如:/ajaxdemo1/AServlet,若为GET请求,还可以在URL后追加参数;
async:这个参数可以不给,默认值为true,表示异步请求;
var xmlHttp = createXMLHttpRequest()
xmlHttp.open("GET", "/ajax_get/?a=1", true)
2、发送请求
当使用open打开连接后,就可以调用XMLHttpRequest对象的send()方法发送请求了。send()方法的参数为POST请求参数,即对应HTTP协议的请求体内容,若是GET请求,需要在URL后连接参数。
注意:若没有参数,需要给出null为参数!若不给出null为参数,可能会导致FireFox浏览器不能正常发送请求!
xmlHttp.send(null)
3、接收服务器的响应(5个状态,4个过程)
当请求发送出去后,服务器端就开始执行了,但服务器端的响应还没有接收到。接下来我们来接收服务器的响应。
XMLHttpRequest对象有一个onreadystatechange事件,它会在XMLHttpRequest对象的状态发生变化时被调用。下面介绍一下XMLHttpRequest对象的5种状态:
0:初始化未完成状态,只是创建了XMLHttpRequest对象,还未调用open()方法;
1:请求已开始,open()方法已调用,但还没调用send()方法;
2:请求发送完成状态,send()方法已调用;
3:开始读取服务器响应;
4:读取服务器响应结束。