>  기사  >  웹 프론트엔드  >  프론트 엔드와 백엔드 간의 Ajax 상호 작용 방법은 무엇입니까?

프론트 엔드와 백엔드 간의 Ajax 상호 작용 방법은 무엇입니까?

php中世界最好的语言
php中世界最好的语言원래의
2018-04-02 13:44:372692검색

이번에는 프론트엔드와 백엔드 사이의 Ajax 상호작용 방법이 무엇인지, 프론트엔드와 백엔드 사이의 Ajax 상호작용 시 주의사항은 무엇인지 소개하겠습니다. 다음은 실제 사례입니다. 봐. 프런트엔드 ajax와 백엔드 Spring MVC

Controller

에는 다음과 같은 5가지 데이터 상호작용 방법이 있습니다. (프론트엔드에서는 dhtmlxGrid, 백엔드에서는 fastjson이 사용됩니다.)

방법 1: URL을 통해 매개변수 전달 /auth/getUser?userid='6'

Server와 같은 URL을 통해 매개변수 후크 -side 메소드를 작성할 수 있습니다. 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)

메소드 4객체 직렬화매개 변수 전달프런트 엔드 호출은 다음과 같습니다. :

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
public UserInfo findById(String userObj) {
//使用fastJSON
UserInfo user = JSON.parseObject(userObj, UserInfo.class);
user = (UserInfo) userService.findById(UserInfo.class, user.getId());
return user;
}

5개의 목록 매개변수 전달프런트엔드 코드:

var objList = new Array();
grid.forEachRow(function(rId) {
var index = grid.getRowIndex(rId);
var obj = {};
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()!="") {
var str = grid.cells(rId, 3).getValue().split("-");
var day = parseFloat(str[2]);
var month = parseFloat(str[1])-1;
var year = parseInt(str[0]);
var date=new Date();
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 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 코드:

rr 리

I 이 글의 사례를 읽으신 후 방법을 마스터하셨다고 믿으세요. 자세한 내용은 PHP 중국어 웹사이트의 다른 관련 글도 주목해 주세요!

추천 자료:

Ajax 데이터 중복 여부 확인


Ajax 상호 작용 중에 보고된 status=parsererror 오류 해결 방법

위 내용은 프론트 엔드와 백엔드 간의 Ajax 상호 작용 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.