前端ajax異步傳值以及后端接收參數(shù)的幾種方式

原文參考

異步傳值

前臺(tái)往后臺(tái)傳值呢圃伶,有很多種方式,大家聽我細(xì)細(xì)道來蒲列。

第一種呢窒朋,也是最簡(jiǎn)單的一種,通過get提交方式蝗岖,將參數(shù)在鏈接中以問號(hào)的形式進(jìn)行傳遞侥猩。

// 前臺(tái)傳值方法    
// 觸發(fā)該方法調(diào)用ajax
    function testAjax(yourData) {
        $.ajax({
            type: "get", // 以get方式發(fā)起請(qǐng)求
            url: "/yourUrl?yourDataName=" + yourData, // 將你的請(qǐng)求參數(shù)以問號(hào)拼接到url中進(jìn)行參數(shù)傳遞
            success(data) {
                // data為返回值
                // 成功后的回調(diào)方法
            }
        })
    }
// 后臺(tái)接值方法
    @RequestMapping("/yourUrl")
    @ResponseBody
// @RequestParam("yourData")是必不可少的,因?yàn)樗付随溄又械膮?shù)名稱
    public String yourUrl(@RequestParam("yourData") String yourData) {
        System.out.println(yourData);
        // 返回值可以自由定義
        return "SUCCESS";
    }

第二種呢剪侮,是將參數(shù)體現(xiàn)到鏈接中拭宁,在后臺(tái)通過占位進(jìn)行傳遞。

// 前臺(tái)傳值方法瓣俯,其實(shí)大體與上方相同只需注意url即可
// 觸發(fā)該方法調(diào)用ajax
    function testAjax(yourData) {
        $.ajax({
            type: "get", // 以get方式發(fā)起請(qǐng)求
            url: "/yourUrl/"+yourData, // 將你的請(qǐng)求參數(shù)拼接到url中進(jìn)行參數(shù)傳遞
            success(data) {
                // data為返回值
                // 成功后的回調(diào)方法
            }
        })
    }
// 后臺(tái)接值方法
    @RequestMapping("/yourUrl/{yourDataName}")
    @ResponseBody
 // 同樣@PathVariable("yourDataName")必不可少杰标,因?yàn)樗付ㄦ溄又心硞€(gè)位置代表著名為yourDataName的變量
    public String yourUrl(@PathVariable("yourDataName") String yourData) {
        System.out.println(yourData);
        // 返回值可以自由定義
        return "SUCCESS";
    }

第三種呢,通過post提交方式將form表單中的數(shù)據(jù)序列化后傳遞到后臺(tái)彩匕。

// 前臺(tái)傳值方法
function testAjax() {
       $.ajax({
           type: "post", // 以post方式發(fā)起請(qǐng)求
           url: "/yourUrl", // 你的請(qǐng)求鏈接
           data:$("#myForm").serialize(), // 對(duì)id為myForm的表單數(shù)據(jù)進(jìn)行序列化并傳遞到后臺(tái)
           success(data) {
               // data為返回值
               // 成功后的回調(diào)方法
           }
       })
   }
// 后臺(tái)接值方法
@RequestMapping("/yourUrl")
 @ResponseBody
// 在這里我假設(shè)大家表單數(shù)據(jù)與User實(shí)體類相對(duì)應(yīng)
 public String yourUrl(User user) {
     System.out.println(user.toString());
     return "SUCCESS";
 }

第四種呢腔剂,就是Ajax異步傳值最常見 的在ajax方法體中使用data進(jìn)行傳值。

 // 前臺(tái)傳值方法
 function testAjax() {
        $.ajax({
            type: "post", // 以post方式發(fā)起請(qǐng)求
            url: "/yourUrl", // 你的請(qǐng)求鏈接
            data: { // 提交數(shù)據(jù)
                "username": "admin", // 前者為字段名驼仪,后者為數(shù)據(jù)
                "password": "admin"
            },
            success(data) {
                // data為返回值
                // 成功后的回調(diào)方法
            }
        })
    }
@RequestMapping("/yourUrl")
   @ResponseBody
// 在這里我假設(shè)大家表單數(shù)據(jù)與User實(shí)體類相對(duì)應(yīng)
   public String yourUrl(@RequestParam("username") String username, @RequestParam("password") String password) {
       System.out.println("username="+username+";password="+password);
       return "SUCCESS";
   }

后臺(tái)往前臺(tái)傳值就要簡(jiǎn)單一些掸犬,單個(gè)數(shù)據(jù)或者封裝數(shù)據(jù)可以直接使用return返回json數(shù)據(jù)給前臺(tái),如果是多個(gè)數(shù)據(jù)绪爸,可以使用```
PrintWriter進(jìn)行傳值湾碎,具體操作如下

PrintWriter out = response.getWriter();
try {
    out.write("yourWillReturnData");
} catch (Exception e) {
    e.printStackTrace();
}finally{
    out.close();
}
// 無論通過那種方式,只需在前臺(tái)Ajax得success回調(diào)方法中對(duì)數(shù)據(jù)進(jìn)行處理即可,我們以u(píng)ser為例
success(user){
    alert("返回的用戶名為:"+user.username+"!!!密碼為:"+user.password);
    // 在瀏覽器控制臺(tái)打印結(jié)果奠货,點(diǎn)擊f12可以查看
    console.log("返回的用戶名為:"+user.username+"!!!密碼為:"+user.password);
}

非異步方式傳值
非異步方式前臺(tái)傳遞參數(shù)
1.與異步方式類似介褥,使用form直接提交或者在鏈接中拼接參數(shù)即可。

<!-- form表單提交 -->
<form id="myForm" class="layui-form" action="/yourUrl" method="post">
    <input type="text" name="username" required placeholder="郵箱"/>
    <input type="password" name="username" required placeholder="密碼"/>
    <button type="submit" class="layui-btn">登錄</button>
</form>
<!-- a標(biāo)簽拼接參數(shù) -->
<a href="/yourUrl?youDataName=yourData">問號(hào)傳遞參數(shù)</a>
<a href="/yourUrl/yourData">拼接鏈接傳遞參數(shù)</a>

2.后臺(tái)接受參數(shù)方式不變,與異步方式完全相同柔滔。
非異步方式后臺(tái)向前臺(tái)傳遞數(shù)據(jù)

  // 1.可以通過session進(jìn)行參數(shù)傳遞
   @RequestMapping("/yourUrl")
   public String yourUrl(HttpServletRequest request) {
       // 通過request獲取session溢陪,然后向session中放入?yún)?shù)key-value
       request.getSession().setAttribute("yourDataName", "yourData");
       // 跳轉(zhuǎn)到你的視圖
       return "/yourViews";
   }

   // 2.可以通過Model進(jìn)行參數(shù)傳遞
   @RequestMapping("/yourUrl")
   public String yourUrl(Model model) {
       // 向model中加入?yún)?shù)key-value
       model.addAttribute("yourDataName", "yourData");
       // 跳轉(zhuǎn)到你的視圖
       return "/yourViews";
   }
   
   // 3.同樣可以用request進(jìn)行參數(shù)傳遞
   @RequestMapping("/yourUrl")
   public String yourUrl(HttpServletRequest request) {
       // 通過request放入?yún)?shù)key-value
       request.setAttribute("yourDataName", "yourData");
       // 跳轉(zhuǎn)到你的視圖
       return "/yourViews";
   }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市睛廊,隨后出現(xiàn)的幾起案子形真,更是在濱河造成了極大的恐慌,老刑警劉巖超全,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咆霜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡卵迂,警方通過查閱死者的電腦和手機(jī)裕便,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來见咒,“玉大人,你說我怎么就攤上這事挂疆「睦溃” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵缤言,是天一觀的道長(zhǎng)宝当。 經(jīng)常有香客問我,道長(zhǎng)胆萧,這世上最難降的妖魔是什么庆揩? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮跌穗,結(jié)果婚禮上订晌,老公的妹妹穿的比我還像新娘。我一直安慰自己蚌吸,他們只是感情好锈拨,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著羹唠,像睡著了一般奕枢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上佩微,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天缝彬,我揣著相機(jī)與錄音,去河邊找鬼哺眯。 笑死谷浅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播壳贪,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼陵珍,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了违施?” 一聲冷哼從身側(cè)響起互纯,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎磕蒲,沒想到半個(gè)月后留潦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辣往,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年兔院,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片站削。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坊萝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出许起,到底是詐尸還是另有隱情十偶,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響顾稀,放射性物質(zhì)發(fā)生泄漏缎浇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦睦柴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至招刹,卻和暖如春恬试,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疯暑。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來泰國打工训柴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人妇拯。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓幻馁,卻偏偏與公主長(zhǎng)得像洗鸵,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子仗嗦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 在這里小小推薦下我的個(gè)人博客csdn:雷園的csdn博客個(gè)人博客:雷園的個(gè)人博客簡(jiǎn)書:雷園的簡(jiǎn)書某寶優(yōu)惠:優(yōu)惠網(wǎng)站...
    雷園LY閱讀 4,489評(píng)論 4 7
  • 一膘滨、 認(rèn)識(shí)Ajax 1、 初識(shí) ajax 我們平常上網(wǎng)稀拐,不管是注冊(cè)賬號(hào)火邓,還是瀏覽網(wǎng)頁,其本質(zhì)就是通過客戶端向服務(wù)器...
    寵辱不驚丶?xì)q月靜好閱讀 1,019評(píng)論 0 2
  • Ajax 技術(shù) 第1章 認(rèn)識(shí)Ajax 1.1 初識(shí) ajax 我們平常上網(wǎng)德撬,不管是注冊(cè)賬號(hào)铲咨,還是瀏覽網(wǎng)頁,其本質(zhì)就...
    春風(fēng)之旅閱讀 2,897評(píng)論 0 26
  • 白真自嘲的笑笑蜓洪,抬起頭不讓淚水流下…… 十七萬年了纤勒! 從他周歲起便跟著折顏,如今竟是已成陌路隆檀! 小五有了阿離摇天,鳳九...
    水清婉閱讀 1,452評(píng)論 3 3
  • 業(yè)績(jī)今天又回暖了,找到感覺了刚操。 今天一共辦了十三個(gè)客戶闸翅,上午十二點(diǎn)前,啟航大廈出了七個(gè)件菊霜。午飯后休息一會(huì)到花園路關(guān)...
    翻滾吧海闊天空閱讀 123評(píng)論 0 1