Ajax學(xué)習(xí)全套(最全最經(jīng)典)
ajax簡(jiǎn)介
AJAX即“Asynchronous Javascript And XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。Ajax不是一種新的編程語(yǔ)言,而是使用現(xiàn)有標(biāo)準(zhǔn)的新方法。AJAX可以在不重新加載整個(gè)頁(yè)面的情況下,與服務(wù)器交換數(shù)據(jù)。這種異步交互的方式,使用戶單擊后,不必刷新頁(yè)面也能獲取新數(shù)據(jù)。使用Ajax,用戶可以創(chuàng)建接近本地桌面應(yīng)用的直接、高可用、更豐富、更動(dòng)態(tài)的Web用戶界面。
Ajax包括:
•XHTML和CSS
•使用文檔對(duì)象模型(Document Object Model)作動(dòng)態(tài)顯示和交互
•使用XML和XSLT做數(shù)據(jù)交互和操作
•使用XMLHttpRequest進(jìn)行異步數(shù)據(jù)接收
利用AJAX可以做:
•注冊(cè)時(shí),輸入用戶名自動(dòng)檢測(cè)用戶是否已經(jīng)存在。
•登陸時(shí),提示用戶名密碼錯(cuò)誤
•刪除數(shù)據(jù)行時(shí),將行ID發(fā)送到后臺(tái),后臺(tái)在數(shù)據(jù)庫(kù)中刪除,數(shù)據(jù)庫(kù)刪除成功后,在頁(yè)面DOM中將數(shù)據(jù)行也刪除。
ajax偽造
iframe就是我們常用的iframe標(biāo)簽:<iframe>。iframe標(biāo)簽是框架的一種形式,也比較常用到,iframe一般用來(lái)包含別的頁(yè)面,例如我們可以在我們自己的網(wǎng)站頁(yè)面加載別人網(wǎng)站或者本站其他頁(yè)面的內(nèi)容。iframe標(biāo)簽的最大作用就是讓頁(yè)面變得美觀。iframe標(biāo)簽的用法有很多,主要區(qū)別在于對(duì)iframe標(biāo)簽定義的形式不同,例如定義iframe的長(zhǎng)寬高。
因此,iframe標(biāo)簽具有局部加載內(nèi)容的特性,所以可以使用其來(lái)偽造Ajax請(qǐng)求。
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>偽造AJAX</title> </head> <body> <div> <p>請(qǐng)輸入要加載的地址:<span id="currentTime"></span></p> <p> <input id="url" type="text" /> <input type="button" value="提交" onclick="LoadPage();"> </p> </div> <div> <h3>加載頁(yè)面位置:</h3> <iframe id="iframePosition" style="width: 100%;height: 500px;"></iframe> </div> <script type="text/javascript"> window.onload= function(){ var myDate = new Date(); document.getElementById('currentTime').innerText = myDate.getTime(); }; function LoadPage(){ var targetUrl = document.getElementById('url').value; document.getElementById("iframePosition").src = targetUrl; } </script> </body> </html>
原理是這樣的,設(shè)置一個(gè)提交按鈕,再設(shè)置一個(gè)輸入框,當(dāng)我們輸入一個(gè)網(wǎng)址的時(shí)候,在當(dāng)前的頁(yè)面加載輸入網(wǎng)址的頁(yè)面信息,呈現(xiàn)在iframe框里,這樣就能做到不刷新URL來(lái)提交不同的信息。
原生ajax
Ajax的核心是XMLHttpRequest對(duì)象(XHR)。XHR為向服務(wù)器發(fā)送請(qǐng)求和解析服務(wù)器響應(yīng)提供了接口。能夠以異步方式從服務(wù)器獲取新數(shù)據(jù)。
一、XMLHttpRequest對(duì)象
Ajax的核心是XMLHttpRequest對(duì)象(XHR)。XHR為向服務(wù)器發(fā)送請(qǐng)求和解析服務(wù)器響應(yīng)提供了接口。能夠以異步方式從服務(wù)器獲取新數(shù)據(jù)。
XHR的主要方法有:
1. void open(String method,String url,Boolen async) 用于創(chuàng)建請(qǐng)求 參數(shù): method: 請(qǐng)求方式(字符串類型),如:POST、GET、DELETE... url: 要請(qǐng)求的地址(字符串類型) async: 是否異步(布爾類型) 2. void send(String body) 用于發(fā)送請(qǐng)求 參數(shù): body: 要發(fā)送的數(shù)據(jù)(字符串類型) 3. void setRequestHeader(String header,String value) 用于設(shè)置請(qǐng)求頭 參數(shù): header: 請(qǐng)求頭的key(字符串類型) vlaue: 請(qǐng)求頭的value(字符串類型) 4. String getAllResponseHeaders() 獲取所有響應(yīng)頭 返回值: 響應(yīng)頭數(shù)據(jù)(字符串類型) 5. String getResponseHeader(String header) 獲取響應(yīng)頭中指定header的值 參數(shù): header: 響應(yīng)頭的key(字符串類型) 返回值: 響應(yīng)頭中指定的header對(duì)應(yīng)的值 6. void abort() 終止請(qǐng)求
XHR的主要屬性有:
1. Number readyState 狀態(tài)值(整數(shù)),可以確定請(qǐng)求/響應(yīng)過(guò)程的當(dāng)前活動(dòng)階段 •0:未初始化。未調(diào)用open()方法 •1:?jiǎn)?dòng)。已經(jīng)調(diào)用open()方法,未調(diào)用send()方法 •2:發(fā)送。已經(jīng)調(diào)用send()方法,未接收到響應(yīng) •3:接收。已經(jīng)接收到部分?jǐn)?shù)據(jù) •4:完成。已經(jīng)接收到全部數(shù)據(jù),可以在客戶端使用 2. Function onreadystatechange 當(dāng)readyState的值改變時(shí)自動(dòng)觸發(fā)執(zhí)行其對(duì)應(yīng)的函數(shù)(回調(diào)函數(shù)) 3. String responseText 作為響應(yīng)主體被返回的文本(字符串類型) 4. XmlDocument responseXML 服務(wù)器返回的數(shù)據(jù)(Xml對(duì)象) 5. Number states 狀態(tài)碼(整數(shù)),如:200、404... 6. String statesText 狀態(tài)文本(字符串),如:OK、NotFound...
二、get請(qǐng)求
GET用于向服務(wù)器查詢某些信息:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <h1>XMLHttpRequest - Ajax請(qǐng)求</h1> <input type="button" onclick="XmlGetRequest();" value="Get發(fā)送請(qǐng)求" /> <script src="/statics/jquery-1.12.4.js"></script> <script type="text/javascript"> function GetXHR(){ var xhr = null; if(XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject("Microsoft.XMLHTTP"); } return xhr; } function XmlGetRequest(){ var xhr = GetXHR(); // 定義回調(diào)函數(shù) xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ // 已經(jīng)接收到全部響應(yīng)數(shù)據(jù),執(zhí)行以下操作 var data = xhr.responseText; console.log(data); } }; // 指定連接方式和地址----文件方式 xhr.open('get', "/test/", true); // 發(fā)送請(qǐng)求 xhr.send(); } </script> </body> </html>
三、post請(qǐng)求
POST請(qǐng)求用于向服務(wù)器發(fā)送應(yīng)該被保存的數(shù)據(jù)。POST請(qǐng)求的主體可以包含非常多的數(shù)據(jù),而且格式不限。
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>POST</title> </head> <body> <h1>XMLHttpRequest - Ajax請(qǐng)求</h1> <input type="button" onclick="XmlPostRequest();" value="Post發(fā)送請(qǐng)求" /> <script src="/statics/jquery-1.12.4.js"></script> <script type="text/javascript"> function GetXHR(){ var xhr = null; if(XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject("Microsoft.XMLHTTP"); } return xhr; } function XmlPostRequest(){ var xhr = GetXHR(); // 定義回調(diào)函數(shù) xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ // 已經(jīng)接收到全部響應(yīng)數(shù)據(jù),執(zhí)行以下操作 var data = xhr.responseText; console.log(data); } }; // 指定連接方式和地址----文件方式 xhr.open('POST', "/test/", true); // 設(shè)置請(qǐng)求頭 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset-UTF-8'); // 發(fā)送請(qǐng)求 xhr.send('n1=1;n2=2;'); } </script> </body> </html>
jquery ajax
jQuery 提供多個(gè)與 AJAX 有關(guān)的方法。
通過(guò) jQuery AJAX 方法,您能夠使用 HTTP Get 和 HTTP Post 從遠(yuǎn)程服務(wù)器上請(qǐng)求文本、HTML、XML 或 JSON - 同時(shí)您能夠把這些外部數(shù)據(jù)直接載入網(wǎng)頁(yè)的被選元素中。
•jQuery 不是生產(chǎn)者,而是大自然搬運(yùn)工。
•jQuery Ajax本質(zhì) XMLHttpRequest 或 ActiveXObject
注:2.+版本不再支持IE9以下的瀏覽器
1. jQuery.get(...) 所有參數(shù): url: 待載入頁(yè)面的URL地址 data: 待發(fā)送 Key/value 參數(shù)。 success: 載入成功時(shí)回調(diào)函數(shù)。 dataType: 返回內(nèi)容格式,xml, json, script, text, html 2.jQuery.post(...) 所有參數(shù): url: 待載入頁(yè)面的URL地址 data: 待發(fā)送 Key/value 參數(shù) success: 載入成功時(shí)回調(diào)函數(shù) dataType: 返回內(nèi)容格式,xml, json, script, text, html 3.jQuery.getJSON(...) 所有參數(shù): url: 待載入頁(yè)面的URL地址 data: 待發(fā)送 Key/value 參數(shù)。 success: 載入成功時(shí)回調(diào)函數(shù)。 4.jQuery.getScript(...) 所有參數(shù): url: 待載入頁(yè)面的URL地址 data: 待發(fā)送 Key/value 參數(shù)。 success: 載入成功時(shí)回調(diào)函數(shù)。 5.jQuery.ajax(...) 部分參數(shù): url:請(qǐng)求地址 type:請(qǐng)求方式,GET、POST(1.9.0之后用method) headers:請(qǐng)求頭 data:要發(fā)送的數(shù)據(jù) contentType:即將發(fā)送信息至服務(wù)器的內(nèi)容編碼類型(默認(rèn): "application/x-www-form-urlencoded; charset=UTF-8") async:是否異步 timeout:設(shè)置請(qǐng)求超時(shí)時(shí)間(毫秒) beforeSend:發(fā)送請(qǐng)求前執(zhí)行的函數(shù)(全局) complete:完成之后執(zhí)行的回調(diào)函數(shù)(全局) success:成功之后執(zhí)行的回調(diào)函數(shù)(全局) error:失敗之后執(zhí)行的回調(diào)函數(shù)(全局) accepts:通過(guò)請(qǐng)求頭發(fā)送給服務(wù)器,告訴服務(wù)器當(dāng)前客戶端課接受的數(shù)據(jù)類型 dataType:將服務(wù)器端返回的數(shù)據(jù)轉(zhuǎn)換成指定類型 "xml": 將服務(wù)器端返回的內(nèi)容轉(zhuǎn)換成xml格式 "text": 將服務(wù)器端返回的內(nèi)容轉(zhuǎn)換成普通文本格式 "html": 將服務(wù)器端返回的內(nèi)容轉(zhuǎn)換成普通文本格式,在插入DOM中時(shí),如果包含JavaScript標(biāo)簽,則會(huì)嘗試去執(zhí)行。 "script": 嘗試將返回值當(dāng)作JavaScript去執(zhí)行,然后再將服務(wù)器端返回的內(nèi)容轉(zhuǎn)換成普通文本格式 "json": 將服務(wù)器端返回的內(nèi)容轉(zhuǎn)換成相應(yīng)的JavaScript對(duì)象 "jsonp": JSONP 格式使用 JSONP 形式調(diào)用函數(shù)時(shí),如 "myurl?callback=?" jQuery 將自動(dòng)替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)
寫(xiě)一個(gè)最簡(jiǎn)單的例子:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <p> <input type="button" onclick="XmlSendRequest();" value='Ajax請(qǐng)求' /> </p> <script type="text/javascript" src="jquery-1.12.4.js"></script> <script> function JXmlSendRequest(){ $.ajax({ url: "http://c2.com:8000/test/", // 訪問(wèn)url地址 type: 'GET', // get方式提交 dataType: 'text', // 數(shù)據(jù)類型 success: function(data, statusText, xmlHttpRequest){ // 成功后返回的結(jié)果 console.log(data); } }) } </script> </body> </html>
跨域ajax
由于瀏覽器存在同源策略機(jī)制,同源策略阻止從一個(gè)源加載的文檔或腳本獲取或設(shè)置另一個(gè)源加載的文檔的屬性。所以ajax本身是不可以跨域的,通過(guò)產(chǎn)生一個(gè)script標(biāo)簽來(lái)實(shí)現(xiàn)跨域。因?yàn)閟cript標(biāo)簽的src屬性是沒(méi)有跨域的限制的。
瀏覽器同源策略并不是對(duì)所有的請(qǐng)求均制約:
•制約: XmlHttpRequest
•不制約: img、iframe、script等具有src屬性的標(biāo)簽
注:自己模擬跨域,需要現(xiàn)在自己電腦的host文件里面添加兩條域名,我這里添加的是zhangyanlin.com和aylin.com這兩個(gè)域名
一、JSONP實(shí)現(xiàn)跨域請(qǐng)求
JSONP是一個(gè)非官方的協(xié)議,它允許在服務(wù)器端集成Script tags返回至客戶端,通過(guò)javascript callback的形式實(shí)現(xiàn)跨域訪問(wèn)。jsonp只能通過(guò)get方式進(jìn)行跨域請(qǐng)求
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="button" value="Ajax" onclick="DoAjax();"/> <input type="button" value="JsonpAjax" onclick="JsonpAjax();"/> <script src="/statics/jquery-1.12.4.js"></script> <script src="http://aylin.com:8002/statics/jquery.cookie.js"></script> <script> function func(arg) { console.log(arg); // 輸出結(jié)果就是python代碼給傳過(guò)來(lái)的列表[11,22,33,] } function DoAjax() { $.ajax({ url: 'http://alex.com:8002/index', type: 'POST', data: {'k1': 'v1'}, success: function (arg) { console.log(arg); } }); } function JsonpAjax() { // var tag = document.createElement('script'); // tag.src = "http://alex.com:8002/index"; // document.head.appendChild(tag); // document.head.removeChild(tag); $.ajax({ url: "http://aylin.com:8002/index", dataType: 'jsonp', jsonpCallBack: 'func' // 對(duì)端給返回函數(shù)名,函數(shù)接收的參數(shù)是內(nèi)容 }) } </script> </body> </html>
aylin.com域名這邊可以給定義函數(shù)
# 采用pythontornado框架來(lái)進(jìn)行的 class IndexHandler(tornado.web.RequestHandler): def get(self): self.write('func([11,22,33]);') def post(self, *args, **kwargs): self.write('t2.post')
在這里jsonp就采用script標(biāo)簽的src來(lái)進(jìn)行跨域請(qǐng)求的
二、CORS
上面那種方法說(shuō)到瀏覽器的同源策略導(dǎo)致ajax無(wú)法進(jìn)行跨域傳輸,那么這種方法就可以突破瀏覽器限制來(lái)進(jìn)行傳輸。當(dāng)數(shù)據(jù)發(fā)送給對(duì)方域名的時(shí)候,對(duì)方已經(jīng)收到,但是在返回的時(shí)候被瀏覽器給阻擋,我們可以寫(xiě)一串類似于身份證的字符串,通過(guò)瀏覽器的預(yù)檢,從而達(dá)到數(shù)據(jù)的傳輸。
這方面分為簡(jiǎn)單請(qǐng)求和非簡(jiǎn)單請(qǐng)求
條件: 1、請(qǐng)求方式:HEAD、GET、POST 2、請(qǐng)求頭信息: Accept Accept-Language Content-Language Last-Event-ID Content-Type 對(duì)應(yīng)的值是以下三個(gè)中的任意一個(gè) application/x-www-form-urlencoded multipart/form-data text/plain 注意:同時(shí)滿足以上兩個(gè)條件時(shí),則是簡(jiǎn)單請(qǐng)求,否則為復(fù)雜請(qǐng)求
簡(jiǎn)單請(qǐng)求只一次請(qǐng)求,而復(fù)雜請(qǐng)求是兩次請(qǐng)求,在發(fā)送數(shù)據(jù)之前會(huì)先發(fā)一次請(qǐng)求用于做“預(yù)檢”,只有“預(yù)檢”通過(guò)后才再發(fā)送一次請(qǐng)求用于數(shù)據(jù)傳輸。
基于cors實(shí)現(xiàn)AJAX請(qǐng)求:
1、支持跨域,簡(jiǎn)單請(qǐng)求
服務(wù)器設(shè)置響應(yīng)頭:Access-Control-Allow-Origin = '域名' 或 '*'
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <p> <input type="submit" onclick="XmlSendRequest();" /> </p> <p> <input type="submit" onclick="JqSendRequest();" /> </p> <script type="text/javascript" src="jquery-1.12.4.js"></script> <script> function XmlSendRequest(){ var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4) { var result = xhr.responseText; console.log(result); } }; xhr.open('GET', "http://c2.com:8000/test/", true); xhr.send(); } function JqSendRequest(){ $.ajax({ url: "http://c2.com:8000/test/", type: 'GET', dataType: 'text', success: function(data, statusText, xmlHttpRequest){ console.log(data); } }) } </script> </body> </html>
class MainHandler(tornado.web.RequestHandler): def get(self): self.set_header('Access-Control-Allow-Origin', "http://www.xxx.com") self.write('{"status": true, "data": "seven"}')
2、支持跨域,復(fù)雜請(qǐng)求
由于復(fù)雜請(qǐng)求時(shí),首先會(huì)發(fā)送“預(yù)檢”請(qǐng)求,如果“預(yù)檢”成功,則發(fā)送真實(shí)數(shù)據(jù)。
•“預(yù)檢”請(qǐng)求時(shí),允許請(qǐng)求方式則需服務(wù)器設(shè)置響應(yīng)頭:Access-Control-Request-Method
•“預(yù)檢”請(qǐng)求時(shí),允許請(qǐng)求頭則需服務(wù)器設(shè)置響應(yīng)頭:Access-Control-Request-Headers
•“預(yù)檢”緩存時(shí)間,服務(wù)器設(shè)置響應(yīng)頭:Access-Control-Max-Age
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <p> <input type="submit" onclick="XmlSendRequest();" /> </p> <p> <input type="submit" onclick="JqSendRequest();" /> </p> <script type="text/javascript" src="jquery-1.12.4.js"></script> <script> function XmlSendRequest(){ var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4) { var result = xhr.responseText; console.log(result); } }; xhr.open('PUT', "http://aylin.com:8000/test/", true); xhr.setRequestHeader('k1', 'v1'); xhr.send(); } function JqSendRequest(){ $.ajax({ url: "http://aylin.com:8000/test/", type: 'PUT', dataType: 'text', headers: {'k1': 'v1'}, success: function(data, statusText, xmlHttpRequest){ console.log(data); } }) } </script> </body> </html>
class MainHandler(tornado.web.RequestHandler): def put(self): self.set_header('Access-Control-Allow-Origin', "http://www.xxx.com") self.write('{"status": true, "data": "seven"}') def options(self, *args, **kwargs): self.set_header('Access-Control-Allow-Origin', "http://www.xxx.com") self.set_header('Access-Control-Allow-Headers', "k1,k2") self.set_header('Access-Control-Allow-Methods', "PUT,DELETE") self.set_header('Access-Control-Max-Age', 10)
3、跨域傳輸cookie
在跨域請(qǐng)求中,默認(rèn)情況下,HTTP Authentication信息,Cookie頭以及用戶的SSL證書(shū)無(wú)論在預(yù)檢請(qǐng)求中或是在實(shí)際請(qǐng)求都是不會(huì)被發(fā)送。
如果想要發(fā)送:
•瀏覽器端:XMLHttpRequest的withCredentials為true
•服務(wù)器端:Access-Control-Allow-Credentials為true
•注意:服務(wù)器端響應(yīng)的 Access-Control-Allow-Origin 不能是通配符 *
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <p> <input type="submit" onclick="XmlSendRequest();" /> </p> <p> <input type="submit" onclick="JqSendRequest();" /> </p> <script type="text/javascript" src="jquery-1.12.4.js"></script> <script> function XmlSendRequest(){ var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4) { var result = xhr.responseText; console.log(result); } }; xhr.withCredentials = true; xhr.open('PUT', "http://aylin.com:8000/test/", true); xhr.setRequestHeader('k1', 'v1'); xhr.send(); } function JqSendRequest(){ $.ajax({ url: "http://aylin.com:8000/test/", type: 'PUT', dataType: 'text', headers: {'k1': 'v1'}, xhrFields:{withCredentials: true}, success: function(data, statusText, xmlHttpRequest){ console.log(data); } }) } </script> </body> </html>
class MainHandler(tornado.web.RequestHandler): def put(self): self.set_header('Access-Control-Allow-Origin', "http://www.xxx.com") self.set_header('Access-Control-Allow-Credentials', "true") self.set_header('xxoo', "seven") self.set_header('zhangyanlinhenshuai', "feichangshuai") self.set_header('Access-Control-Expose-Headers', "shuai,shuaishuai") self.set_cookie('kkkkk', 'vvvvv'); self.write('{"status": true, "data": "seven"}') def options(self, *args, **kwargs): self.set_header('Access-Control-Allow-Origin', "http://www.xxx.com") self.set_header('Access-Control-Allow-Headers', "k1,k2") self.set_header('Access-Control-Allow-Methods', "PUT,DELETE") self.set_header('Access-Control-Max-Age', 10)
以上所述是小編給大家介紹的Ajax學(xué)習(xí)全套(最全最經(jīng)典)的全部敘述,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- IE關(guān)閉時(shí)判斷及AJAX注銷案例學(xué)習(xí)
- Ajax與JSON的一些學(xué)習(xí)總結(jié)
- 那些年,我還在學(xué)習(xí)Ajax 學(xué)習(xí)筆記
- jquery中ajax學(xué)習(xí)筆記4
- jquery中ajax學(xué)習(xí)筆記3
- 從零開(kāi)始學(xué)習(xí)jQuery (六) jquery中的AJAX使用
- AJax 學(xué)習(xí)筆記二(onreadystatechange的作用)
- AJax 學(xué)習(xí)筆記一(XMLHTTPRequest對(duì)象)
- Jquery Ajax學(xué)習(xí)實(shí)例 向頁(yè)面發(fā)出請(qǐng)求,返回XML格式數(shù)據(jù)
- 揭開(kāi)AJAX神秘的面紗(AJAX個(gè)人學(xué)習(xí)筆記)
相關(guān)文章
Ajax 通過(guò)城市名獲取數(shù)據(jù)(全國(guó)天氣預(yù)報(bào)API)
本文給大家分享全國(guó)天氣預(yù)報(bào)API Ajax 通過(guò)城市名獲取數(shù)據(jù),通過(guò)html和js兩部分代碼實(shí)現(xiàn)天氣預(yù)報(bào)效果,輸入城市就會(huì)出現(xiàn)天氣情況,效果非常棒,感興趣的朋友可以參考下2016-11-11ECSHOP中實(shí)現(xiàn)ajax彈窗登錄功能
本文主要給大家介紹在ecshop中實(shí)現(xiàn)ajax彈窗登錄功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下2017-03-03JQuery中Ajax的Post提交在IE下中文亂碼的解決方法
在JQuery的Ajax POST請(qǐng)求中,進(jìn)行請(qǐng)求,其中的中文在后臺(tái),顯示為亂碼,在FF/Chrome中,可以正常傳遞中文,但是在IE下,則存在問(wèn)題2014-05-05Ajax客戶端異步調(diào)用服務(wù)端的實(shí)現(xiàn)方法(js調(diào)用cs文件)
下面小編就為大家分享一篇Ajax客戶端異步調(diào)用服務(wù)端的實(shí)現(xiàn)方法(js調(diào)用cs文件),具有很好的參考價(jià)值,希望對(duì)大家有所幫助2017-12-12