ajax請求后台詳解


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

      public UserInfo findById(String userObj) {

       //使用fastJSON

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

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

             return user;

      }

 

方式五  列表傳參

前台代碼如:

               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<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代碼:

 

    var dataParam= {
        參數1: 值1,
        參數2: document.getElementById(控件ID).value,
        參數3: 值3
    };

 

 

 

 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;
 }

 

function callmvc(cId) {
    $.ajax({
        url: '/***/***/***',
        data: { "cid": cId },
        type: "post",
        success: function (data) {
            if (data != null) {

            }
        }
    });
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM