SpringMVC框架下,通過jQuery發送ajax異步(asynchronous)請求


一,如何在項目中引用jQuery

jQuery官方CDN

  1. <span style=“font-size:14px;”><script type=“text/javascript” src=“http://code.jquery.com/jquery-1.12.0.min.js”></script>  
  2. <script type=“text/javascript” src=“http://code.jquery.com/jquery-migrate-1.2.1.min.js”></script></span>  
<span style="font-size:14px;"><script type="text/javascript" src="http://code.jquery.com/jquery-1.12.0.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script></span>

Google CDN(由於谷歌的網站在大陸訪問受限,可能會影響加載速度)

  1. <script type=“text/javascript” src=“http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js”></script>    
  2. <script type=“text/javascript” src=“http://jquery-json.googlecode.com/files/jquery.json-2.2.min.js”></script>    
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>  
<script type="text/javascript" src="http://jquery-json.googlecode.com/files/jquery.json-2.2.min.js"></script>  


二,發送ajax請求,簡單的demo,已經測試通過

1,JavaScript代碼


  1. //使用jQuery + Ajax + SpringMVC   
  2. (function(){&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;//文本框點擊事件&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; ("#input_url").click(&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function(){&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;<span class="attribute">a</span><span>&nbsp;=&nbsp; (this);&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//發送ajax請求&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ajax({&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:"AjaxAsynchronousRequestTest.action",&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type:'post',&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data:'<span class="attribute">name</span><span>=</span><span class="attribute-value">admin</span><span>',&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataType:'json',&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:function(data,status){&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(<span class="attribute">status</span><span>&nbsp;==&nbsp;"success"){&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//接收服務器端傳來的數據&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;<span class="attribute">str_from_server</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">data</span><span>.message;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//將接收到的數據顯示到文本框&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (“#response_div”).html(str_from_server);  
  3.                     }  
  4.                 },  
  5.                 //  
  6.                 error:function(xhr,textStatus,errorThrown){}  
  7.             }  
  8.             );  
  9.         }  
  10.     );  
  11. }  
  12. );  
//使用jQuery + Ajax + SpringMVC 
$(function(){
    //文本框點擊事件
    $("#input_url").click(
        function(){
            //
            var $a = $(this);
            //發送ajax請求
            $.ajax({
                //
                url:"AjaxAsynchronousRequestTest.action",
                type:'post',
                data:'name=admin',
                dataType:'json',
                success:function(data,status){
                    if(status == "success"){

                        //接收服務器端傳來的數據
                        var str_from_server = data.message;

                        //將接收到的數據顯示到文本框
                        $("#response_div").html(str_from_server);
                    }
                },
                //
                error:function(xhr,textStatus,errorThrown){}
            }
            );
        }
    );
}
);

2,html代碼


  1. <!– Ajax Asynchronous request test –>  
  2.   
  3. <div id=“container”>     
  4.     <table class=“zebra”>  
  5.         <thead>  
  6.             <tr>  
  7.                 <th>Ajax Asynchronous request test</th>  
  8.                 </tr>  
  9.         </thead>  
  10.         <tbody>  
  11.             <tr>  
  12.                     <td><input type=“button” name=“determine_url” id=“input_url” value=“下面顯示ajax異步請求的數據,數據來自服務器端”/></td>  
  13.                 </tr>  
  14.         </tbody>  
  15.     </table>  
  16. </div>  
  17.   
  18. <!– Display the response body –>  
  19.   
  20. <div id=“response_div”></div>  
<!-- Ajax Asynchronous request test -->

<div id="container">   
    <table class="zebra">
        <thead>
            <tr>
                <th>Ajax Asynchronous request test</th>
                </tr>
        </thead>
        <tbody>
            <tr>
                    <td><input type="button" name="determine_url" id="input_url" value="下面顯示ajax異步請求的數據,數據來自服務器端"/></td>
                </tr>
        </tbody>
    </table>
</div>

<!-- Display the response body -->

<div id="response_div"></div>

3,服務器端代碼 SpringMVC的Controller


  1. <span style=“font-size:14px;”>/**  
  2.  *  
  3.  * @author ycq  
  4.  *  
  5.  * Ajax Asynchronous request test  
  6.  *  
  7.  */  
  8.   
  9. @Controller  
  10. public class AjaxAsynchronousRequestTestController {  
  11.       
  12.     @RequestMapping(“AjaxAsynchronousRequestTest.action”)  
  13.     @ResponseBody  
  14.     public Map<String,String> getBeanBySpringMethod(){  
  15.           
  16.         //創建一個Map,用來封裝數據  
  17.         Map<String,String> responseToAjax = new HashMap<String,String>();  
  18.           
  19.         responseToAjax.put(“message”, “ajax請求數據接收成功…”);  
  20.           
  21.         responseToAjax.put(“msg”, ”@ResponseBody”);  
  22.           
  23.         //測試輸出  
  24.         System.out.println(“測試…,打印這段文字,說明Ajax Asynchronous request 發送成功…”);  
  25.           
  26.         return responseToAjax;  
  27.     }  
  28. }</span>  
<span style="font-size:14px;">/**
 *
 * @author ycq
 *
 * Ajax Asynchronous request test
 *
 */

@Controller
public class AjaxAsynchronousRequestTestController {

    @RequestMapping("AjaxAsynchronousRequestTest.action")
    @ResponseBody
    public Map<String,String> getBeanBySpringMethod(){

        //創建一個Map,用來封裝數據
        Map<String,String> responseToAjax = new HashMap<String,String>();

        responseToAjax.put("message", "ajax請求數據接收成功...");

        responseToAjax.put("msg", "@ResponseBody");

        //測試輸出
        System.out.println("測試...,打印這段文字,說明Ajax Asynchronous request 發送成功...");

        return responseToAjax;
    }
}</span>


下面再附上一個demo:

  1. function Ajax_demo(){  
  2.  var ajaxUrl = {ctx}/xxxcontroller/method_in_controller.html?ajax=true'</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;var&nbsp;<span class="attribute">ajaxData</span><span>&nbsp;=</span><span class="attribute-value">""</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;var&nbsp;<span class="attribute">iframeFlag</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">false</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp; .ajax({  
  3.         type:’POST’,  
  4.         url:ajaxUrl,  
  5.         data:ajaxData,  
  6.         error:function(){  
  7.             alert(‘ajax錯誤’);  
  8.             if(iframeFlag){  
  9.                 (".class_1").css("display","none");&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (".class_2").css("display","none");&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:function(data){&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(("#some_id").length&nbsp;<span class="tag">&gt;</span><span>&nbsp;0){&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$("#some_id").html(data);&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (“.class_3”).css(“display”,”none”);  
  10.               
  11.         }  
  12.     });  
  13. }  
 function Ajax_demo(){
     var ajaxUrl = '${ctx}/xxxcontroller/method_in_controller.html?ajax=true';
     var ajaxData ="";
     var iframeFlag = false;
        $.ajax({
            type:'POST',
            url:ajaxUrl,
            data:ajaxData,
            error:function(){
                alert('ajax錯誤');
                if(iframeFlag){
                    $(".class_1").css("display","none");
                }else{
                    $(".class_2").css("display","none");
                }
            },
            success:function(data){
                if($("#some_id").length > 0){
                    $("#some_id").html(data);
                }

                $(".class_3").css("display","none");

            }
        });
    }



發佈了28 篇原創文章 · 獲贊 20 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章