Java基礎——Ajax(二),java基礎ajax

來源:互聯網
上載者:User

Java基礎——Ajax(二),java基礎ajax

一、jQuery 實現 ajax

$(function(){  $("#userName").blur(function(){  // 發ajax請求  用的函數原型: $.get(url, data, callback )  $.get("UserServlet",{uname:$("#userName").val()},function( receiveData){  $("#lblMsg").html(receiveData);                   });         });});
//服務端UserServletpublic void doPost(HttpServletRequest request, HttpServletResponse response)       throws ServletException, IOException {       String userName=request.getParameter("uname");       response.setContentType("text/html;charset=utf-8");       response.getWriter().print("這是用戶端傳過來的 使用者名稱 : "+userName+"  , 可用");  //盡量別加ln} 

二、jQuery.ajax([options]) 詳解

$("button").click(function(){  $.ajax({        type:"POST",   //大小寫不敏感,後面別忘加  " , ""        url:"UserServlet",   //一定要用引號擴起來        data: {userName:$("#userName").val(),password:$("#password").val()},   // "userName=123&password=456",        success:function(receiveData){        $("#lblMsg").html(receiveData);                        }          });       });
 //服務端 public void doPost(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {      request.setCharacterEncoding("utf-8");  //對方如果是post請求,可以這樣處理中文亂碼                      String userName=request.getParameter("userName");      String password=request.getParameter("password");                              response.setContentType("text/html;charset=utf-8");      response.getWriter().print("添加成功,添加的資訊是"+userName+":"+password); } 

參數說明

-- 回呼函數  beforeSend、error、dataFilter、success、complete( 當請求完成之後調用這個函數 )

-- 資料類型 dataType  /* 我們必須確保網頁伺服器報告的MIME類型與我們選擇的dataType所匹配。

比如說,XML的話,伺服器端就必須聲明 text/xml 或者 application/xml 來獲得一致的結果。 如果指定為html類型,任何內嵌的JavaScript都會在HTML作為一個字串返回之前執行類似的,指定script類型的話,也會先執行伺服器端產生JavaScript,然後再把指令碼作為一個文本資料返回。

如果指定為json類型,則會把擷取到的資料作為一個JavaScript對象來解析,並且把構建好的對象作為結果返回,為了實現這個目的,他首先嘗試使用JSON.parse()。

如果擷取的資料檔案存放在遠程伺服器上(網域名稱不同,也就是跨域擷取資料),則需要使用jsonp類型。

使用這種類型的話,會建立一個查詢字串參數 callback=? ,這個參數會加在請求的URL後面。伺服器端應當在JSON資料前加上回呼函數名,以便完成一個有效JSONP請求。

如果要指定回呼函數的參數名來取代預設的callback,可以通過設定$.ajax()的jsonp參數。

預期伺服器返回的資料類型。如果不指定,jQuery 將自動根據 HTTP 包 MIME 資訊來智能判斷,比如XML MIME類型就被識別為XML。在1.4中,JSON就會產生一個JavaScript對象,而script則會執行這個指令碼。隨後伺服器端返回的資料會根據這個值解析後,傳遞給回呼函數。

可用值: 

"xml": 返回 XML 文檔,可用 jQuery 處理。

"html": 返回純文字 HTML 資訊;包含的script標籤會在插入dom時執行。

"script": 返回純文字 JavaScript 代碼。不會自動緩衝結果。除非設定了"cache"參數。'''注意:'''在遠程請求時(不在同一個域下),所有POST請求都將轉為GET請求。(因為將使用DOM的script標籤來載入)

"json": 返回 JSON 資料 。

"jsonp": JSONP 格式。使用 JSONP 形式調用函數時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數名,以執行回呼函數。

"text": 返回純文字字串 */

--發送資料 data選項

既可以包含一個查詢字串,比如 key1=value1&key2=value2,也可以是一個映射,比如 {key1: 'value1', key2: 'value2'} 。如果使用了後者的形式,則資料再發送器會被轉換成查詢字串

--進階選項

cache  //是否緩衝 預設值是true  , (dataType為script和jsonp時預設為false)

async  //是否使用非同步 預設值 為true ,預設的情況下,所有的請求都是非同步請求

contentType //預設: "application/x-www-form-urlencoded")

context  /* 設定Ajax相關回呼函數的上下文

$.ajax({ url: "test.html", context: document.body, success: function(){$(this).addClass("done");}}); */       

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.