利用jsonp解决ajax跨域问题:(至于success里面的操作可以忽略:)
某工程下ajax请求代码:
var isVisible = true;
function getLog() {
if(isVisible) {
isVisible = false;
//先删除数据
$(".table_tr").remove();
$(".nav-content").html("");
$("#nav-btn").html("");
//显示页面的时候要添加数据
$.ajax({
url : "http://192.168.1.103:8080/DataAcquisition/set/getlog",
type : "GET",
async : false,
data : "callback=?" + "¤tPageNum=" + 1, //随便加个callback参数,这里没有影响
dataType: 'jsonp', //类型
jsonp: 'callback', //jsonp回调参数,必需
success : function(data) {
$.each(data.datas, function(index, TaskLog) {
$(".log_locate").append("<div class='table_tr'><div class='table_td'>"+ TaskLog.targetUrl+"</div><div class='table_td'>"+ TaskLog.captureSet + "</div><div class='table_td'>" + TaskLog.matName +"</div><div class='table_td'>" + TaskLog.date +"</div><div class='table_td'>10</div></div>");
});
var startPage = data.startPage;
var endPage = data.endPage;
//拼接 导航 按钮 和 数据 总数 内容
$(".nav-content").append("当前共"+ data.totalPage +"页,每页最多"+ data.pageSize +"条记录");
if(data.currentPageNum == 1) {
$("#nav-btn").append("<li><<</li>");
$("#nav-btn").append("<li><</li>");
} else {
$("#nav-btn").append("<a href='javascript:void(0)' οnclick='changePage("+1+")'><li><<</li></a>");
$("#nav-btn").append("<a href='javascript:void(0)' οnclick='changePage("+ (data.currentPageNum-1) +")'><li><</li></a>");
}
for(var pageNum = startPage; pageNum <= endPage; pageNum++) {
//如果是当前的页数 ,添加 按钮背景 颜色
if(pageNum == data.currentPageNum) {
$("#nav-btn").append("<a href='javascript:void(0)' οnclick='changePage("+pageNum+")'><li class='page-button-bg'>"+pageNum+"</li></a>");
} else {
$("#nav-btn").append("<a href='javascript:void(0)' οnclick='changePage("+pageNum+")'><li>"+pageNum+"</li></a>");
}
}
if(data.currentPageNum == data.totalPage) {
$("#nav-btn").append("<li>></li>");
$("#nav-btn").append("<li>>></li>");
} else {
$("#nav-btn").append("<a href='javascript:void(0)' οnclick='changePage("+ (data.currentPageNum+1)+")'><li>></li></a>");
$("#nav-btn").append("<a href='javascript:void(0)' οnclick='changePage("+data.totalPage+")'><li>>></li></a>");
}
},
error : function() {
alert("系统异常!");
}
});
//显示页面
$(".show-log-table").css("visibility","visible");
} else {
isVisible = true;
$(".show-log-table").css("visibility","hidden");
}
另一工程controller(这里使用的是spring mvc):
@RequestMapping(value="/getlog", method = RequestMethod.GET)
public void getLog(PageBean<TaskLog> pageBean, HttpServletResponse response, String callback) throws IOException {
PrintWriter out = response.getWriter();
TaskLogDao taskLogDao = DaosFactory.getInstance().createDao("com.dataacquisition.dao.impl.TaskLogDaoImpl");
PageBean<TaskLog> resultPageBean = taskLogDao.getPageBean(pageBean);
//这里特别注意,格式需要严格遵守
String resultJsonStr = callback + "(" + JSON.toJSONString(resultPageBean) + ");";
out.write(resultJsonStr);
}