您的位置:首页 > Web前端 > JQuery

jquery下ajax异步执行操作笔记

2013-04-07 18:29 288 查看
1、首先导入jquery的js文件

2、在脚本function中添加以下代码:

$.ajax( {

cache : false, // (默认: true) jQuery 1.2 新功能,设置为 false 将不会从浏览器缓存中加载请求信息

ifModified : true, //(默认: false) 仅在服务器数据改变时获取新数据。使用 HTTP 包 Last-Modified 头信息判断。

type : 'POST', //(默认: "GET") 设置请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。

timeout : 5000, //设置请求超时时间(毫秒)。此设置将覆盖全局设置。

url : 'contractAdmin', //设置请求路径

data : { //设置发送请求时传递的参数,前面是key,后面是value,中间用冒号隔开,各参数之间用逗号隔开,最后一个参数后没有逗号或其它任何符号。

'operation' : '7',

'contractChipId' : param

},

//或者直接序列化一个form表单

data : $("#form2").serialize(),

success : function(data) {

//ajax请求发送成功进入该方法,data是异步返回的数据,在此进行处理。

//当dataType为‘html’的时候,data就是返回的html值,

//当dataType为‘json’的时候,可以通过$.each(data,function(x,args){})遍历返回值,data是返回的json格式的list内容,

// x 是遍历的次数,从 0 开始,args是集合中的单个对象,可以通过json中的key获取到对应的value :args.name

},

error : function(data) {

//(默认: 自动判断 (xml 或 html)) 请求失败时调用。参数:XMLHttpRequest 对象,错误信息,(可能)捕获的错误对象。

},

complete: function(data) {

//请求完成后回调函数 (请求成功或失败时均调用)。参数:XMLHttpRequest 对象,成功信息字符串。

},

beforeSend : function(data){

// 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一的参数。譬如加载等待图片等。

},

dataType : 'text' //预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,

并作为回调函数参数传递,可用值:

"xml": 返回 XML 文档,可用 jQuery 处理。

"html": 返回纯文本 HTML 信息;包含 script 元素。

"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。

"json": 返回 JSON 数据 。

"jsonp": JSONP格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

});

注:以上属性可选择性使用,详见jquery API帮助文档 AJAX部分

3、在响应请求的后台中做如下响应:

response.setContentType("application/text;charset=UTF-8");

response.getWriter().write(status);

return;



response.setContentType("application/json;charset=UTF-8");

String json = "{\"leng\":\"0\"}";//或者从数据库查询相关信息赋给Bean对象,然后重写Bean类的toString()方法为json格式,将对象toString写回。

response.getWriter().write(json);

return;

示例:

$.ajax( {//页面

cache : false,

type : 'POST',

url : 'contractAdmin',

data : {

'operation' : '7',

'contractChipId' : param

},

success : function(data) {

if(data == 1){

$("#tr"+param).html("");//清除tr

$(window.parent.document).find("body").messagebox('恭喜,删除成功', '', 1, 1000);

}

},

error : function() {

$(window.parent.document).find("body").messagebox('很遗憾,删除失败', '', 0, 1000);

},

dataType : 'text'

});

//响应请求端(后台)

response.setContentType("application/text;charset=UTF-8");

response.getWriter().write(status);

return;

或者

$.ajax( {

cache : false,

type : 'POST',

url : $("#JSON").val(),

data : {

'JSONChildren' : $("#JSONChildren").val()

},

success : function(data) {

$("#JSONLast").html("<option value='0'>请选择 </option>");

$.each(data, function(x, args)
{//遍历返回值

$("#JSONLast").append(

"<option value='" + args.id + "'>" + args.name + "</option>");

});

},

error : function(x, y, z) {

alert(x + "|\n" + y + "|\n" + z);

},

dataType : 'json'

});

//后台

List<Police> policeList = getLastPolice(strPoliceId);

if(policeList == null){

policeList = new ArrayList<Police>();

}

response.setContentType("application/json;charset=UTF-8");

response.getWriter().write(policeList.toString());

/**

* 为使本类可以被JSON解析,覆写toString方法

*/

@Override

public String toString() {

return "{\"id\":\"" + policeId + "\",\"name\":\"" + policeName + "\"}";

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: