分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

ajax请求后台详解

发布时间:2023-09-06 02:01责任编辑:熊小新关键词:暂无标签

AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

什么是 AJAX ?

AJAX = 异步 JavaScript 和 XML。

AJAX 是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。

前端ajax与后端Spring MVC控制器有以下五种数据交互方式

方式一 通过URL传参

通过URL挂接参数,如/auth/getUser?userid=‘6‘

服务器端方法可编写为:getUser(String userid),也可新增其他参数如HttpSession, HttpServletRequest,HttpServletResponse,Mode,ModelAndView等。

方式二 单值传参

前台调用如:

ajaxPost("/base/user/exchangeSort",{"id":rid,"otherid":otherid},function(data,status){

xxxxxx

xxxxxx

});

服务器端为:

public String exchangeSort(String id, String otherid)

方式三 对象传参

前台调用如:

var org={id:id};

ajaxPost("/base/org/getOrgById", org,function(data,textStatus){

xxxx

xxxx

});

服务器端为:

public Org getOrgById(Org org)

方式四 对象序列化传参

前台调用如:

var ueser={id:rowId};

var data=ajaxPost("/base/user/findById",{"userObj":JSON.stringify(user)},null);

或者

var ueser={ };//创建对象

user["id"]=id;

user["name"]=$("#name").val();

user["dept"]={};//外键对象

user["dept"]["id"]=$("#deptid").val();

ajaxPost("/base/user/addUser",{"userObj":JSON.stringify(user)},function(data){xxxx;xxxxx;});

服务器端为:

@RequestMapping("/findById")

@ResponseBody

publicUserInfo findById(String userObj) {

//使用fastJSON

UserInfo user = JSON.parseObject(userObj, UserInfo.class);

user = (UserInfo)userService.findById(UserInfo.class, user.getId());

returnuser;

}

方式五 列表传参

前台代码如:

varobjList =newArray();

grid.forEachRow(function(rId) {

varindex = grid.getRowIndex(rId);

varobj = {};

obj["id"] = rId;

obj["user"] = {};

obj["user"]["id"] = $("#userId").val();

//不推荐这样的写法

//obj["kinShip"] = grid.cells(rId, 1).getValue();

//obj["name"] = grid.cells(rId, 2).getValue();

obj["kinShip"]=grid.cells(rId,grid. getColIndexById ("columnName")).getValue();

obj["name"]=grid.cells(rId,grid.getColIndexById("name")).getValue();

if(grid.cells(rId, 3).getValue()!=null&& grid.cells(rId, 3).getValue()!="") {

varstr = grid.cells(rId, 3).getValue().split("-");

varday = parseFloat(str[2]);

varmonth = parseFloat(str[1])-1;

varyear = parseInt(str[0]);

vardate=newDate();

date.setFullYear(year, month, day);

obj["birth"] = date;

}else{

obj["birth"] ="";

}

obj["politicalStatus"] = grid.cells(rId, 4).getValue();

obj["workUnit"] = grid.cells(rId, 5).getValue();

if(grid.cells(rId, 6).isChecked())

obj["isContact"] ="1";

else

obj["isContact"] ="0";

obj["phone"] = grid.cells(rId, 7).getValue();

obj["remark"] = grid.cells(rId, 8).getValue();

obj["sort"] = index;

objList.push(obj);

});

ajaxPost("/base/user/addUpdateUserHomeList", {

"userHomeList": JSON.stringify(objList),

"userId": $("#userId").val()

},function(data, status) {

xxxxx

});

服务器端:

@RequestMapping("/addUpdateUserHomeList")

@ResponseBody

public String addUpdateUserHomeList(String userHomeList, String userId) {

List<UserHome> userHomes = JSON

.parseArray(userHomeList, UserHome.class);//fastJSON

if (userHomes != null && userHomes.size() > 0) {

try {

userService.addUpdateUserHomeList(userHomes, userId);

} catch (Exception e) {

e.printStackTrace();

}

}

return "200";

}

附上ajaxPost代码:

 function ajaxPost(url,dataParam,callback){ ????var retData=null; ????$.ajax({ ?????????type: "post", ????????url: url, ?????????data: dataParam, ????????dataType: "json", ??????????success: function (data,status) { ???????????// alert(data); ????????????retData=data; ????????????if(callback!=null&&callback!=""&&callback!=undefined) ????????????????callback(data,status); ?????????}, ????????error: function (err,err1,err2) { ?????????????????alertMsg.error("调用方法发生异常:"+JSON.stringify(err)+"err1"+ JSON.stringify(err1)+"err2:"+JSON.stringify(err2)); ????????} ??}); ????????????return retData; }

ajax请求后台详解

原文地址:https://www.cnblogs.com/lee24789229/p/9216860.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved