1. 程式人生 > >[jQuery]$.ajax()方法詳解及例項

[jQuery]$.ajax()方法詳解及例項

$.ajax()方法詳解及例項 

1.url:

要求為String型別的引數,(預設為當前頁地址)傳送請求的地址。
2.type:
要求為String型別的引數,請求方式(post或get)預設為get。注意其他http請求方法,例如put和delete也可以使用,但僅部分瀏覽器支援。
3.timeout:
要求為Number型別的引數,設定請求超時時間(毫秒)。此設定將覆蓋$.ajaxSetup()方法的全域性設定。
4.async:
要求為Boolean型別的引數,預設設定為true,所有請求均為非同步請求。如果需要傳送同步請求,請將此選項設定為false。注意,同步請求將鎖住瀏覽器,使用者其他操作必須等待請求完成才可以執行。

5.cache:
要求為Boolean型別的引數,預設為true(當dataType為script時,預設為false),設定為false將不會從瀏覽器快取中載入請求資訊。
6.data:
要求為Object或String型別的引數,傳送到伺服器的資料。如果已經不是字串,將自動轉換為字串格式。get請求中將附加在url後。防止這種自動轉換,可以檢視  processData選項。物件必須為key/value格式,例如{foo1:"bar1",foo2:"bar2"}轉換為&foo1=bar1&foo2=bar2。如果是陣列,JQuery將自動為不同值對應同一個名稱。例如{foo:["bar1","bar2"]}轉換為&foo=bar1&foo=bar2。

7.dataType:
要求為String型別的引數,預期伺服器返回的資料型別。如果不指定,JQuery將自動根據http包mime資訊返回responseXML或responseText,並作為回撥函式引數傳遞。可用的型別如下:
xml:返回XML文件,可用JQuery處理。
html:返回純文字HTML資訊;包含的script標籤會在插入DOM時執行。
script:返回純文字JavaScript程式碼。不會自動快取結果。除非設定了cache引數。注意在遠端請求時(不在同一個域下),所有post請求都將轉為get請求。
json:返回JSON資料。
jsonp:JSONP格式。使用SONP形式呼叫函式時,例如myurl?callback=?,JQuery將自動替換後一個“?”為正確的函式名,以執行回撥函式。

text:返回純文字字串。
8.beforeSend:
要求為Function型別的引數,傳送請求前可以修改XMLHttpRequest物件的函式,例如新增自定義HTTP頭。在beforeSend中如果返回false可以取消本次ajax請求。XMLHttpRequest物件是惟一的引數。
function(XMLHttpRequest){
this; //呼叫本次ajax請求時傳遞的options引數
}
9.complete:
要求為Function型別的引數,請求完成後呼叫的回撥函式(請求成功或失敗時均呼叫)。引數:XMLHttpRequest物件和一個描述成功請求型別的字串。
function(XMLHttpRequest, textStatus){
this; //呼叫本次ajax請求時傳遞的options引數
}
10.success:
要求為Function型別的引數,請求成功後呼叫的回撥函式,有兩個引數。
(1)由伺服器返回,並根據dataType引數進行處理後的資料。
(2)描述狀態的字串。
function(data, textStatus){
//data可能是xmlDoc、jsonObj、html、text等等
this; //呼叫本次ajax請求時傳遞的options引數
}
11.error:
要求為Function型別的引數,請求失敗時被呼叫的函式。該函式有3個引數,即XMLHttpRequest物件、錯誤資訊、捕獲的錯誤物件(可選)。ajax事件函式如下:
function(XMLHttpRequest, textStatus, errorThrown){
//通常情況下textStatus和errorThrown只有其中一個包含資訊
this; //呼叫本次ajax請求時傳遞的options引數
}
12.contentType:
要求為String型別的引數,當傳送資訊至伺服器時,內容編碼型別預設為"application/x-www-form-urlencoded"。該預設值適合大多數應用場合。
13.dataFilter:
要求為Function型別的引數,給Ajax返回的原始資料進行預處理的函式。提供data和type兩個引數。data是Ajax返回的原始資料,type是呼叫jQuery.ajax時提供的dataType引數。函式返回的值將由jQuery進一步處理。
function(data, type){
//返回處理後的資料
return data;
}
15.global:
要求為Boolean型別的引數,預設為true。表示是否觸發全域性ajax事件。設定為false將不會觸發全域性ajax事件,ajaxStart或ajaxStop可用於控制各種ajax事件。
16.ifModified:
要求為Boolean型別的引數,預設為false。僅在伺服器資料改變時獲取新資料。伺服器資料改變判斷的依據是Last-Modified頭資訊。預設值是false,即忽略頭資訊。
17.jsonp:
要求為String型別的引數,在一個jsonp請求中重寫回調函式的名字。該值用來替代在"callback=?"這種GET或POST請求中URL引數裡的"callback"部分,例如{jsonp:'onJsonPLoad'}會導致將"onJsonPLoad=?"傳給伺服器。
18.username:
要求為String型別的引數,用於響應HTTP訪問認證請求的使用者名稱。
19.password:
要求為String型別的引數,用於響應HTTP訪問認證請求的密碼。
20.processData:
要求為Boolean型別的引數,預設為true。預設情況下,傳送的資料將被轉換為物件(從技術角度來講並非字串)以配合預設內容型別"application/x-www-form-urlencoded"。如果要傳送DOM樹資訊或者其他不希望轉換的資訊,請設定為false。
21.scriptCharset:
要求為String型別的引數,只有當請求時dataType為"jsonp"或者"script",並且type是GET時才會用於強制修改字符集(charset)。通常在本地和遠端的內容編碼不同時使用。

案例程式碼

<span style="font-size:14px;">$(function(){
    $('#send').click(function(){
         $.ajax({
             type: "GET",
             url: "test.json",
             data: {username:$("#username").val(), content:$("#content").val()},
             dataType: "json",
             success: function(data){
                         $('#resText').empty(); //清空resText裡面的所有內容 var html = ''; 
                         $.each(data, function(commentIndex, comment){
                               html += '<div class="comment"><h6>' + comment['username'] + ':</h6><p class="para"' + comment['content'] + '</p></div>';
                         });
                         $('#resText').html(html);
                      }
         });
    });
});</span>

例:當點選a標籤的時候顯示對應的下面內容, 通過ajax實現。

<span style="font-size:14px;"><script type="text/javascript">
jQuery('.yd_content').load('yuding_tab0.html');
jQuery.ajax({
  url:"yuding_tab0.html",
  type:'get',
  data:{},
  dataType:"html",
  success: function(data){
   jQuery('.yd_content').html(data);
   },
  error: function(){
   alert('error');
   }
});
<script>

<script type="text/javascript">
jQuery('.jiudian_content .tab li').bind('click',
 function(){
 var _index=jQuery(this).index();
  jQuery.ajax({
    url:"yuding_tab"+_index+".html",
    type:'get',
    data:{},
    dataType:"html",
    success: function(data){
    jQuery('.yd_content').html(data);
    yuding();
    },
    error: function(){
    alert('error');
    }
    });
 })

</script></span>

根據選擇的線路動態的獲取所線上路的車型

<span style="background-color: rgb(255, 255, 255);"><span style="font-size:18px;"><%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ include file="../taglibs.jsp"%>
<%@ taglib prefix="jvform" tagdir="/WEB-INF/tags/form" %>
<%@ taglib prefix="jvnav" tagdir="/WEB-INF/tags/nav" %>
<%@ taglib prefix="jvlayout" tagdir="/WEB-INF/tags/layout" %>
<%@ taglib prefix="jvmessage" tagdir="/WEB-INF/tags/message" %>
<%@ taglib prefix="jvtable" tagdir="/WEB-INF/tags/table" %>
<%@ taglib prefix="jvpagetable" tagdir="/WEB-INF/tags/pagetable"%>
<%@ taglib prefix="jvdialog" tagdir="/WEB-INF/tags/dialog"%>

<jvnav:breadcrumb id="breadcrumb">
	<jvnav:breadcrumbitem title="電動列車檢修計劃調整管理" url="/vehicleCheck" active="true"
		icon="icon-home" />
	<jvnav:breadcrumbitem title="編輯電動列車檢修計劃" active="false" />
</jvnav:breadcrumb>
<jvlayout:page>
	<h3 class="col-xs-12 header smaller lighter blue">
		<span class="col-xs-12 col-sm-7">編輯電動列車檢修計劃</span> <span
			class="col-xs-12 col-sm-5"><button
				class="btn btn-xs btn-primary" style="width: 100px"
				onclick="history.back()">返回列表</button>
		</span>
	</h3>
	<jvlayout:row>
		<jvlayout:col length="12">
			<!-- PAGE CONTENT BEGINS -->
			<jvform:form id="vehicleCheckform" action="/vehicleCheck/save" method="post">
				<jvform:hidden id="id" value="${check.id}"></jvform:hidden>
				<jvform:textfield id="orderNumber" title="工單號" value="${check.orderNumber}"></jvform:textfield>
				<jvform:select id="type" required="true" title="流程型別" options="${typeList}" optionsType="2" value="${check.type}" selectType="1"></jvform:select>
				
				<div class="form-group">
					<label class="col-sm-3 control-label no-padding-right">
						線路
					</label>
					<div class="col-sm-9">
						<select class="col-xs-10 col-sm-5" id="lineId" name="lineId" onchange="selectCarType(this.value);">
							<c:forEach items="${lineList}" var="line">
								<c:choose>
									<c:when test="${line.id eq check.lineId}">
										<option value="${line.id}" selected="selected">${line.name}</option>
									</c:when>
									<c:otherwise>
										<option value="${line.id}">${line.name}</option>		
									</c:otherwise>
								</c:choose>
							</c:forEach>
						</select>
					</div>
				</div>
				<div class="form-group">
					<label class="col-sm-3 control-label no-padding-right">
						車型
					</label>
					<div class="col-sm-9">
						<input id="type" value="${check.carTypeId}" type="hidden">
						<select class="col-xs-10 col-sm-5" id="carTypeId" name="carTypeId" >
						</select>
					</div>
				</div>
				
				<jvform:textfield id="carNo" title="車號" required="ture" value="${check.carNo}"></jvform:textfield>
				<jvform:textfield id="name" title="修程名稱" required="ture" value="${check.name}"></jvform:textfield>
				<jvform:select required="true" id="type2" title="型別" options="${typeList2}" optionsType="2" value="${check.type2}"></jvform:select>
				
				<jvform:textfield id="workNo" title="工作令號" required="ture" value="${check.workNo}"></jvform:textfield>
				<jvform:datefield id="planStartDate" title="原計劃開始時間" required="ture" value="${check.planStartDate}"></jvform:datefield>
				<jvform:datefield id="planEndDate" title="原計劃結束時間" required="ture" value="${check.planEndDate}"></jvform:datefield>
				<jvform:datefield id="realStartDate" title="現調整開始時間" value="${check.realStartDate}"></jvform:datefield>
				<jvform:datefield id="realEndDate" title="現調整結束時間" value="${check.realEndDate}"></jvform:datefield>
				<jvform:textareafield id="reason" title="計劃調整事由" required="ture" value="${check.reason}"></jvform:textareafield>
			</jvform:form>
		</jvlayout:col>
	</jvlayout:row>
	<!-- /row -->
</jvlayout:page>
<!-- /.page-content -->
<script type="text/javascript">
$(function(){ 
	selectCarType($("#lineId").val());
}); 
function selectCarType(lineId) {
	var parm = [];
	$("#carTypeId").empty();
	parm.push( {"name": "lineId", "value": lineId});
	$.ajax({
		"type" : "POST",
		"contentType" : "application/json",
		"url" : '<c:url value="/line/findVehicleTypeByLineId"/>',
		"dataType" : "json", 
		"data" : JSON.stringify(parm), //以json格式傳遞
		"success" : function(resp) {
			var content = '';
			content += '<option value="0">--請選擇--</option>';
			$.each(resp.content, function(i, item) {
				if (item.id == $("#type").val()) {
					content += '<option value="'+item.id+'" selected="selected">'+item.newNum+'</option>';
				} else {
					content += '<option value="'+item.id+'">'+item.newNum+'</option>';
				}
			});
			$("#carTypeId").append(content);
		}
	});
}
</script></span></span>



相關推薦

[jQuery]$.ajax()方法例項

$.ajax()方法詳解及例項  1.url: 要求為String型別的引數,(預設為當前頁地址)傳送請求的地址。2.type:要求為String型別的引數,請求方式(post或get)預設為get。注意其他http請求方法,例如put和delete也可以使用,但僅部分瀏覽

$.ajax()方法

例如 lencod ace 包含 等等 json 返回 用戶名 代碼 jquery中的ajax方法參數總是記不住,這裏記錄一下。 1.url: 要求為String類型的參數,(默認為當前頁地址)發送請求的地址。 2.type: 要求為String類型的參數,請求方式(p

Java 的String中intern方法測試樣例

intern public String intern() 返回字串物件的規範化表示形式。 一個初始時為空的字串池,它由類 String 私有地維護。 當呼叫 intern 方法時,如果池已經包含一個等於此 String 物件的字串(該物件由 equals(Obj

python 中join()函式strip() 函式和 split() 函式的例項

1、join()函式 Python中有join()和os.path.join()兩個函式,具體作用如下: join(): 連線字串陣列。將字串、元組、列表中的元素以指定的字元(分隔符)連線生成一個新的字串 語法: ‘sep’.join(seq) 引數說明 sep:分隔符。可以

Java執行緒池例項

前言 多執行緒的非同步執行方式,雖然能夠最大限度發揮多核計算機的計算能力,但是如果不加控制,反而會對系統造成負擔。執行緒本身也要佔用記憶體空間,大量的執行緒會佔用記憶體資源並且可能會導致Out of Memory。即便沒有這樣的情況,大量的執行緒回收也會給GC帶來很大的壓力

jQuery中的$.ajax()方法

jquery中的ajax方法引數總是記不住,這裡記錄一下。   1.url:  要求為String型別的引數,(預設為當前頁地址)傳送請求的地址。 2.type:  要求為String型別的引數,請求方式(post或get)預設為get。注意其他http請求

Linux下的壓縮zip,tar命令例項

Linux下的壓縮解壓縮命令詳解及例項 例項:壓縮伺服器上當前目錄的內容為xxx.zip檔案 zip -r xxx.zip ./* 解壓zip檔案到當前目錄 unzip filename.zip ============================ 另:有些伺服器

JS進階篇--JS陣列reduce()方法高階技巧

去除巢狀的思路: 用遞迴、reduce()、concat()來實現。 遞迴解決多層巢狀,reduce()解決每層陣列的迭代拼接,concat()來拼接陣列即拆除一層巢狀。 let sum = [0, 1, 2, 3].reduce(function(acc, val)

微信 小程式前端原始碼例項分析

微信小程式前端原始碼邏輯和工作流 看完微信小程式的前端程式碼真的讓我熱血沸騰啊,程式碼邏輯和設計一目瞭然,沒有多餘的東西,真的是大道至簡。 廢話不多說,直接分析前端程式碼。個人觀點,難免有疏漏,僅供參考。 檔案基本結構: 先看入口app.js,app(obj)註冊一個小程式。接受一個 obje

execCommand()命令例項展示

execCommand方法是執行一個對當前文件,當前選擇或者給出範圍的命令。處理Html資料時常用如下格式: document.execCommand(sCommand[,互動方式, 動態引數]) , 其中:sCommand為指令引數(

jQuery之$.ajax()方法

ajax不管是前端,還是後臺都是要學習的知識點,也是必用知識點。ajax是非同步更新,只需要進行少量的資料互動便可到達頁面的區域性刷下。非常棒。 jquery中的ajax方法引數總是記不住,這裡記錄一下。 1.url:  要求為String型別的引數,(預設為當前

最大流之Ford-Fulkerson方法實現

最大流問題常常出現在物流配送中,可以規約為以下的圖問題。最大流問題中,圖中兩個頂點之間不能同時存在一對相反方向的邊。 邊上的數字為該條邊的容量,即在該條邊上流過的量的上限值。最大流問題就是在滿足容量限制條件下,使從起點s到終點t的流量達到最大。在介紹解決最大流問題的For

JAVA多執行緒 join() 方法應用場景

在某些情況下,主執行緒建立並啟動了子執行緒,如果子執行緒中需要進行大量的耗時運算,主執行緒往往將早於子執行緒結束之前結束,如果主執行緒想等待子執行緒執行完畢後,獲得子執行緒中的處理完的某個資料,就要用

python strip() 函式和 split() 函式的例項

一直以來都分不清楚strip和split的功能,實際上strip是刪除的意思;而split則是分割的意思。因此也表示了這兩個功能是完全不一樣的,strip可以刪除字串的某些字元,而split則是根據規定的字元將字串進行分割。下面就詳細說一下這兩個功能, 1 Python strip()函式 介紹

python urllib2例項

urllib2是Python的一個獲取URLs(Uniform Resource Locators)的元件。他以urlopen函式的形式提供了一個非常簡單的介面,這是具有利用不同協議獲取URLs的能力,他同樣提供了一個比較複雜的介面來處理一般情況,例如:基礎驗證,

Angular自定義指令之compile, link, controller屬性例項演示

本文章主要就angularjs指令中的compile,link及controller函式的使用和區別進行詳細討論。以下是本文的結構: directive的執行原理 compile用法 link 用法 controller 用法 compile,link及co

ER圖例項解析

ER圖分為實體、屬性、關係三個核心部分。 實體是長方形,屬性是橢圓形,關係為菱形。 實體(entity): 即資料模型中的資料物件(即資料表),用長方體來表示,每個實體都有自己的實體成員(entity member)或者說實體物件(entity instance),例如

Linux下的壓縮zip,壓縮unzip命令例項

Linux下的壓縮解壓縮命令詳解及例項 例項:壓縮伺服器上當前目錄的內容為xxx.zip檔案 zip -r xxx.zip ./* 解壓zip檔案到當前目錄 unzip filename.zip ============================ 另:有些伺服器沒有安裝zip包執行不了zip

跟我學Redis(17)—Redis事務例項

前面有篇文章,簡單介紹了Redis事務。 Redis事務主要命令包括 MULTI、EXEC、WATCH 命令。本篇文章將詳細介紹事務以及Redis事務例項應用! 一、事務、悲觀鎖、樂觀鎖概述 簡單的

C# sort 方法示例

諸如List<T>等泛型集合類,直接提供了sort()方法用於將集合中的元素進行排序。 但是,其前提是集合中存放的是可直接排序的基本型別,如List<int>, List<double>,如果 我們定義了一個自定義型別 Class MyClass,並建立一個自定義型別