项目中的应用,先看来自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页面:
jsp对应的js页面代码:
请求的action部分:
通过 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',//请求的URL
data: {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;
}