相關說明
格式說明:
1.引數名;
2.引數型別;
3.引數說明,預設值,可選值;
url
String
(預設: 當前頁地址) 傳送請求的地址。
type
String
(預設: "GET") 請求方式 ("POST" 或 "GET"), 預設為 "GET"。
注意:其它 HTTP 請求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支援。
timeout
Number
設定請求超時時間(毫秒)。此設定將覆蓋全域性設定。
async
Boolean
(預設: true) 預設設定下,所有請求均為非同步請求。如果需要傳送同步請求,請將此選項設定為 false。注意,同步請求將鎖住瀏覽器,使用者其它操作必須等待請求完成才可以執行。
beforeSend
Function
傳送請求前可修改 XMLHttpRequest 物件的函數,如新增自定義 HTTP 頭。XMLHttpRequest 物件是唯一的引數。
function (XMLHttpRequest) {
this;
}
cache
Boolean
(預設: true) jQuery 1.2 新功能,設定為 false 將不會從瀏覽器快取中載入請求資訊。
complete
Function
請求完成後回撥函數 (請求成功或失敗時均呼叫)。引數: XMLHttpRequest 物件,成功資訊字串。
function (XMLHttpRequest, textStatus) {
}
contentType
String
(預設: "application/x-www-form-urlencoded") 傳送資訊至伺服器時內容編碼型別。預設值適合大多數應用場合。
data
Object,String
傳送到伺服器的資料。將自動轉換為請求字串格式。GET 請求中將附加在 URL 後。
檢視 processData 選項說明以禁止此自動轉換。必須為 Key/Value 格式。
如果為陣列,jQuery 將自動為不同值對應同一個名稱。
如 {foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'。
dataType
String
預期伺服器返回的資料型別。如果不指定,jQuery 將自動根據 HTTP 包 MIME 資訊返回 responseXML 或 responseText,並作為回撥函數引數傳遞,可用值:
"xml": 返回 XML 檔案,可用 jQuery 處理。
"html": 返回純文字 HTML 資訊;包含 script 元素。
"script": 返回純文字 JavaScript 程式碼。不會自動快取結果。
"json": 返回 JSON 資料 。
"jsonp": JSONP 格式。使用 JSONP 形式呼叫函數時,
如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數名,以執行回撥函數。
error
Function
(預設: 自動判斷 (xml 或 html)) 請求失敗時將呼叫此方法。
這個方法有三個引數:XMLHttpRequest 物件,錯誤資訊,(可能)捕獲的錯誤物件。
function (XMLHttpRequest, textStatus, errorThrown) {
// 通常情況下textStatus和errorThown只有其中一個有值 this;
}
global
Boolean
(預設: true) 是否觸發全域性 AJAX 事件。
設定為 false 將不會觸發全域性 AJAX 事件,如 ajaxStart 或 ajaxStop 。
可用於控制不同的Ajax事件
ifModified
Boolean
(預設: false) 僅在伺服器資料改變時獲取新資料。使用 HTTP 包 Last-Modified 頭資訊判斷。
processData
Boolean
(預設: true) 預設情況下,傳送的資料將被轉換為物件(技術上講並非字串) 以配合預設內容型別 "application/x-www-form-urlencoded"。
如果要傳送 DOM 樹資訊或其它不希望轉換的資訊,請設定為 false。
success
Function
請求成功後回撥函數。這個方法有兩個引數:伺服器返回資料,返回狀態function (data, textStatus) {
// data could be xmlDoc, jsonObj, html, text, etc...
}
1.傳送get請求將引數通過?拼接在url後面
$.ajax({
url: "/login/authenticate?name="+name+"&user="+user, //請求的url地址
url: Feng.ctxPath + "/reportDay/checkMerNo?merNo=" + merNo, //請求的地址
cache: "false", //設定為false將不會從瀏覽器中載入請求資訊
async: "true", //true所有請求均為非同步請求
dataType: "json", //請求返回資料的格式
type:"get", //請求方式
success: function(data){ //請求成功後的回撥方法
console.log("data:" + data);
if(data == true){
}else{
Feng.error("不存在該商戶號,請仔細檢查後在填寫!")
}
},
error:function () { //請求失敗後的回撥方法
Feng.error("請求出錯!")
}
});
後臺接收引數
/**
通過@RequestParam("***")接收引數值
*/
@RequestMapping("/yourUrl")
@ResponseBody
public String yourUrl(@RequestParam("merNo") String merNo) {
System.out.println(yourData);
// 返回值可以自由定義
return "SUCCESS";
}
2.將引數拼接在url中,後臺通過預留位置接收引數 /{id}
$.ajax({
url: Feng.ctxPath + "/reportDay/checkMerNo/" + merNo, //請求的地址
cache: "false", //設定為false將不會從瀏覽器中載入請求資訊
async: "true", //true所有請求均為非同步請求
dataType: "json", //請求返回資料的格式
type:"get", //請求方式
success: function(data){ //請求成功後的回撥方法
console.log("data:" + data);
if(data == true){
}else{
Feng.error("不存在該商戶號,請仔細檢查後在填寫!")
}
},
error:function () { //請求失敗後的回撥方法
Feng.error("請求出錯!")
}
});
後臺接收引數
/**
@PathVariable("yourDataName")接收
*/
@RequestMapping("/yourUrl/{merNo}")
@ResponseBody
public String yourUrl(@PathVariable("merNo") String merNo) {
System.out.println(yourData);
// 返回值可以自由定義
return "SUCCESS";
}
3.通過post提交方式將form表單中的資料序列化後傳遞到後臺。
$.ajax({
url: Feng.ctxPath + "/reportDay/checkMerNo", //請求的地址
data: $("#myForm").serialize(), // 對id為myForm的表單資料進行序列化並傳遞到後臺
cache: "false", //設定為false將不會從瀏覽器中載入請求資訊
async: "true", //true所有請求均為非同步請求
dataType: "json", //請求返回資料的格式
type:"post", //請求方式
success: function(data){ //請求成功後的回撥方法
console.log("data:" + data);
if(data == true){
}else{
Feng.error("不存在該商戶號,請仔細檢查後在填寫!")
}
},
error:function () { //請求失敗後的回撥方法
Feng.error("請求出錯!")
}
});
後臺接收引數
/**
在這裡我假設大家表單資料與User實體類相對應
*/
@RequestMapping("/yourUrl")
@ResponseBody
public String yourUrl(User user) {
System.out.println(user.toString());
return "SUCCESS";
}
4.常見的data傳值
$.ajax({
url: Feng.ctxPath + "/reportDay/checkMerNo", //請求的地址
data: { // 提交資料
"username": "admin", // 前者為欄位名,後者為資料
"password": "admin"
},
cache: "false", //設定為false將不會從瀏覽器中載入請求資訊
async: "true", //true所有請求均為非同步請求
dataType: "json", //請求返回資料的格式
type:"post", //請求方式
success: function(data){ //請求成功後的回撥方法
console.log("data:" + data);
if(data == true){
}else{
Feng.error("不存在該商戶號,請仔細檢查後在填寫!")
}
},
error:function () { //請求失敗後的回撥方法
Feng.error("請求出錯!")
}
});
接收引數
/**
在這裡我假設大家表單資料與User實體類相對應
*/
@RequestMapping("/yourUrl")
@ResponseBody
public String yourUrl(@RequestParam("username") String username,
@RequestParam("password") String password) {
System.out.println("username="+username+";password="+password);
return "SUCCESS";
}
5.拼接data
$.ajax({
url: Feng.ctxPath + "/reportDay/checkMerNo", //請求的地址
data: 'name='+name+'&user='+user, //引數值
cache: "false", //設定為false將不會從瀏覽器中載入請求資訊
async: "true", //true所有請求均為非同步請求
dataType: "json", //請求返回資料的格式
type:"get", //請求方式
success: function(data){ //請求成功後的回撥方法
console.log("data:" + data);
if(data == true){
}else{
Feng.error("不存在該商戶號,請仔細檢查後在填寫!")
}
},
error:function () { //請求失敗後的回撥方法
Feng.error("請求出錯!")
}
});
後臺接收引數
/**
@RequestParam
*/
@RequestMapping("/yourUrl")
@ResponseBody
public String yourUrl(@RequestParam("name") String name, @RequestParam("user") String user) {
System.out.println("username="+username+";password="+password);
return "SUCCESS";
}
6.@ModelAttribute註解:使用@ModelAttribute這個方法可以直接將引數對映成pojo物件,我不加@ModelAttribute註解,直接接收pojo物件,同樣能夠接收到引數
<script type="text/javascript">
$(function(){
$.ajax({
type:"post",
url:"http://localhost:8080/test",
data:{
"name":"張三",
"phone":"10086",
"password":"123456"
},
async:true,
success:function(data){
console.log(data);
}
});
})
</script>
後臺接收引數
@RequestMapping("/test")
@ResponseBody
public String testUser(@ModelAttribute("TUser") TUser user){
System.out.println(user.getName());
System.out.println(user.getPassword());
System.out.println(user.getPhone());
return "ok";
}
7.@PathVariabl
<script type="text/javascript">
$(function(){
$.ajax({
type:"post",
url:"http://localhost:8080/test/10086",
data:{
"name":"張三",
"password":"123456"
},
async:true,
success:function(data){
console.log(data);
}
});
})
</script>
後臺接收引數
@RequestMapping("/test/{phone}")
@ResponseBody
public String testUser(String name,@PathVariable String phone,String password){
System.out.println(name);
System.out.println(phone);
System.out.println(password);
return "ok";
}
使用HttpServletRequest接收引數
@RequestMapping("/test")
@ResponseBody
public String testUser(HttpServletRequest request, HttpServletResponse response){
System.out.println(request.getParameter("name"));
System.out.println(request.getParameter("phone"));
System.out.println(request.getParameter("password"));
return "ok";
}
使用@RequestParam接收引數
@RequestMapping("/test")
@ResponseBody
public String testUser(@RequestParam("name") String a,@RequestParam("phone") String b, String password){
/**
* @RequestParam() 裡邊的值必須要和前端傳遞過來的引數名字相同
*/
System.out.println(a);
System.out.println(b);
System.out.println(password);
return "ok";
}
<!-- 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標籤拼接引數 -->
<a href="/yourUrl?youDataName=yourData">問號傳遞引數</a>
<a href="/yourUrl/yourData">拼接連結傳遞引數</a>
// 1.可以通過session進行引數傳遞
@RequestMapping("/yourUrl")
public String yourUrl(HttpServletRequest request) {
// 通過request獲取session,然後向session中放入引數key-value
request.getSession().setAttribute("yourDataName", "yourData");
// 跳轉到你的檢視
return "/yourViews";
}
// 2.可以通過Model進行引數傳遞
@RequestMapping("/yourUrl")
public String yourUrl(Model model) {
// 向model中加入引數key-value
model.addAttribute("yourDataName", "yourData");
// 跳轉到你的檢視
return "/yourViews";
}
// 3.同樣可以用request進行引數傳遞
@RequestMapping("/yourUrl")
public String yourUrl(HttpServletRequest request) {
// 通過request放入引數key-value
request.setAttribute("yourDataName", "yourData");
// 跳轉到你的檢視
return "/yourViews";
}