diqizhan 发表于 2013-1-23 02:16:59

jQuery的ajax应用

项目中的应用,先看来自jQuery API1.3的介绍。

通过 HTTP 请求加载远程数据。

jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求。

$.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息。详细参数选项见下。

注意: 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml")。错误的 MIME 类型可能导致不可预知的错误。见 Specifying the Data Type for AJAX Requests 。

注意:如果dataType设置为"script",那么在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)

jQuery 1.2 中,您可以跨域加载 JSON 数据,使用时需将数据类型设置为 JSONP。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。数据类型设置为 "jsonp" 时,jQuery 将自动调用回调函数。

我的应用,主要是在load一个jsp页面时,即时加载下拉框select的内容。

对应的jsp页面:
<select id='state' style="width: 154px" name="m.state"></select>

jsp对应的js页面代码:
$(document).ready(function () {loadStateForQuery();});function loadStateForQuery() {$.ajax({url: contextPath + '/icmgr/icInfoItem/loadState.action',//请求的URLdata: {dictTypeId:'PC_STATE'},//传递给action的参数async: false,dataType: 'json',success: function(records) {$.each(records, function(index, value) {var opt = $('<option></option>').attr('value', value.dictId).text('[' + value.dictId + ']' + value.dictName);opt.appendTo($('#state'));});}});$('#state').append($('<option value=""></option>').attr('selected', 'selected'));}

请求的action部分:
/** * ajax 调用 * @return */public String loadState() {List<JfDictBean> list = icInfoItemService.findDictByDictTypeId(dictTypeId);JSONArray json = JSONArray.fromObject(list);writePlainText(json.toString());return NONE;}
页: [1]
查看完整版本: jQuery的ajax应用