亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

全面解析Ajax和jsonp的使用總結

2024-09-01 08:30:27
字體:
來源:轉載
供稿:網友

ajax發送http請求并與后臺異步通信的技術,它的原則是實例化xmlhttp對象并使用它與后臺通信,今天錯新技術頻道小編帶大家來聊一聊全面解析Ajax和jsonp的使用總結,希望對你學習這方面知識有幫助!

一、ajax

?定義:一種發送http請求與后臺進行異步通訊的技術。

?原理:實例化xmlhttp對象,使用此對象與后臺通信。

ajax的同源策略:

?ajax請求的頁面或資源只能是同一個域下面的資源,不能是其他域的資源,這是在設計ajax時基于安全考慮。

--------------------------------------------------------------------------------

ajax的方法:

1. $.ajax({}):

?常用參數: ?url:請求網絡地址
?type:請求方式,默認是'GET',常用'POST'
?dataType:設置返回的數據格式,一般使用json,也可以是html和jsonp;
?data:設置發送給服務器的數據
?.done():設置請求成功后的回調函數
?.fail():設置請求失敗后的回調函數
?async:設置是否異步,默認值是'true',表示異步

?代碼運用:

$(function () {  $("input").click(function () {    $.ajax({      url: "./data.json",      type: "get",      dataType: "json",    });    .done(function(data) {//請求成功的回調函數      $("input").val(dat.name);    })    .fail(function() {      alert('服務器超時,請重試!');    });  });})......<body>  <div>    <input type="button" value="xinzhi">  </div></body>

說明:data表示后臺返回的數據;ajax使用需要依賴服務器環境。

2. $.get():

?$.get() 方法使用GET請求從服務器加載數據;也是一種無刷新的請求數據的ajax方法。

?參數:
?url:訪問的網址,需要遵循同源策略;
?data:發送到服務器的數據。
?function(data,status){}:請求成功運行的函數
?dataType:請求響應的數據類型。

//參考代碼:$(function () {  $("input").click(function () {    $.get(      "./data.json",      function (data,status) {        console.log(data.name);      },      "json"    );  });})......<body>  <div>    <input type="button" value="xinzhi">  </div></body>

?$.get()方法的參數和$.ajax()不一樣,網址url為必須的參數,其他三個可選。
?data為返回的數據,status表示請求的狀態,一般有""success","error","timeout"等幾種。
?如果datatype類型為jsonp,也可以跨域請求數據。
?無請求失敗的回調函數。

3. $.post()

?$.get() 方法使用POST請求從服務器加載數據;
?其使用的方法和$.get()方法完全一樣。

4. $.load():

?從服務器加載數據,不需要指定datatype,返回的數據會自動放置到元素中。
?參數:

?URL:地址;
?data:請求的參數,可選;
?function(response,status,xhr):請求成功的回調函數。

$(function () {  $("input").click(function () {    $(".box").load(      "./data.json",      function (response,status) {        console.log(data.name);      }    );  });})......<body>  <div>    <input type="button" value="xinzhi">    <div class="box"></div>  </div></body>

?返回的數據會放置在div中;
?不能跨域訪問數據;
?response為返回的數據,status為請求的狀態;
?無請求失敗的回調函數。

4. getJSON()

?方法使用 AJAX 的 HTTP GET 請求獲取 JSON 數據。
?參數:
?url: 請求網址,必須的參數;
?data: 發送給服務器的數據;
?function(data,status,xhr):請求成功的回調函數

$(function () {  $("input").click(function () {    $.getJSON(      "./data.json",      function(data,status) {        console.log(data.name);      },    );  });})......<body>  <div>    <input type="button" value="xinzhi">  </div></body>

?方法直接獲取的是json數據;

?無返回失敗的回調函數;

?回調函數時命名函數,不是匿名函數;

5. getScript()

?方法使用 AJAX 的 HTTP GET 請求獲取并執行js代碼。

?參數:

?url: 請求網址,必須的參數;

?function(data,status):請求成功的回調函數

$(function () {  $("input").click(function () {    $.getScript(      "./data.js",      function(data,status) {        console.log(data);      },    );  });})......<body>  <div>    <input type="button" value="xinzhi">  </div></body>

?返回結data是js代碼;

?該方法可以用來動態加載js代碼。

二、jsonp

?定義:一種可以實現跨域發送http請求的數據通信格式,可以嵌在ajax中使用。
?原理:利用script標簽可以跨域鏈接資源的特性。

用法一:函數傳參

<script type="text/javascript">  function aa(data){    console.log(data.name);  }</script><script type="text/javascript" src="....../data.js"></script>

說明:在外部定義一個data.js文件,這個文件的路徑可以與當前頁面不在同一個域下面。

data.js的內容:

aa({    "data":{    "name":"xiaohong",    "age":"18"  }})

?將數據以頁面定義的函數的參數的形式傳遞進去,從而獲取數據。

?本質上可以將數據拆分,使得數據不用強制保存在同一個域名下。

用法二:利用ajax

$.ajax({  url:'...../data.js',//可以不是本地域名   type:'get',  dataType:'jsonp', //jsonp格式訪問  jsonpCallback:'aa' //獲取數據的函數}).done(function(data){  console.log(data.name);}).fail(function() {  alert('服務器超時,請重試!');});

?data.js的內容和上面一樣。

?使用ajax的方法本質上也是script標簽可以跨域鏈接資源,不過jquery為其封裝了相同的方法,看起來一樣。

?以上代碼的執行過程為:ajax通過jsonp技術跨域訪問data.js文件,通過找到aa()方法將其參數傳遞給.done方法的data參數執行.done方法。

?目前這種方式仍然有其局限性,就是必須知道data.js文件的名字和定義的方法aa,如果在僅僅知道域名的情況下,需要另外的方法.

用法三

var $input = $("input");$input.keyup(function () {  $.ajax({    url:'https://sug.so.#/suggest?',//請求360搜索的聯想數據    type:'get',    dataType:'jsonp', //jsonp格式訪問    data: {word: $input.val()},  })  .done(function(data){    console.log(data);  })  .fail(function() {    alert('服務器超時,請重試!');  });})....<body>  <input type="text"></body>

?通過瀏覽器查看每次輸入關鍵字服務器發送回的數據包,找到js文件中header的地址以及相關的提交數據,發現key為word關鍵字,因此可以向服務器發送data數據。
?服務器返回的數據會自動傳給回調的匿名函數的參數data.

在編程的世界中每個功能都會產生不同的效果,看完上文介紹的全面解析Ajax和jsonp的使用總結,相信大家都了解了吧,錯新技術頻道將繼續為大家帶來更多專業知識。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩电影免费在线观看中文字幕| 成人国内精品久久久久一区| 日韩一二三在线视频播| 亚州国产精品久久久| 精品久久久久久久久久| 日韩一二三在线视频播| 成人免费xxxxx在线观看| 久久婷婷国产麻豆91天堂| 日韩电影免费观看在线观看| 九九热最新视频//这里只有精品| 欧美肥婆姓交大片| 国产精品999| 久久99精品久久久久久噜噜| 日韩免费黄色av| 欧美日本中文字幕| 欧美国产日韩精品| 永久免费毛片在线播放不卡| 美女啪啪无遮挡免费久久网站| 国产91对白在线播放| 亚洲成色999久久网站| 日韩高清a**址| 亚洲国产精品va在线看黑人动漫| 日韩性生活视频| 视频在线一区二区| 中文字幕亚洲激情| 亚洲男人av电影| 亚洲欧美日韩国产成人| 亚洲国产精品成人精品| 91sao在线观看国产| 欧美限制级电影在线观看| 456亚洲影院| 一区二区欧美激情| 日韩电影中文 亚洲精品乱码| 在线看国产精品| 26uuu亚洲伊人春色| 久久久精品网站| 97高清免费视频| 亚洲欧美另类自拍| 欧美大秀在线观看| 亚洲精品成人久久| 日韩精品视频免费专区在线播放| 亚洲国产精品久久久久久| 中文字幕精品一区二区精品| 亚洲精品videossex少妇| 亚洲国产成人精品电影| 亚洲国产成人精品电影| 国产日韩欧美在线视频观看| 在线观看欧美视频| 亚洲free性xxxx护士hd| 久久激情视频免费观看| 久久久久久噜噜噜久久久精品| 日韩电影中文字幕在线| 在线亚洲国产精品网| 久久久久久69| 亚洲综合日韩中文字幕v在线| 成人国产精品久久久久久亚洲| 日韩亚洲欧美中文高清在线| 中文字幕在线看视频国产欧美| 国产精品视频网| 中文字幕亚洲在线| 姬川优奈aav一区二区| 欧美极品少妇xxxxⅹ免费视频| 欧美日韩免费一区| 亚洲精品第一国产综合精品| 欧美激情一区二区三区高清视频| 日韩女优人人人人射在线视频| 亚洲欧美一区二区三区四区| 激情成人在线视频| 中文字幕精品在线视频| 永久免费毛片在线播放不卡| 日韩精品视频免费| 亚洲三级免费看| 久久91精品国产91久久久| 中文字幕一区二区精品| 国产精品一区二区三| 日韩精品在线电影| 国产精品久久中文| 久久精品国产清自在天天线| 欧美激情精品久久久久久久变态| 欧美另类精品xxxx孕妇| 精品性高朝久久久久久久| 亚洲色图狂野欧美| 国产一区二区三区精品久久久| 国产欧美日韩视频| 亚洲国产精品人久久电影| 国产精品小说在线| 欧美中文在线字幕| 性色av一区二区三区免费| 国产一区二区三区视频在线观看| 欧美精品在线免费播放| 91精品国产色综合| 国产精品久久久久久久久免费看| 国产精品福利在线观看| 欧美日韩亚洲视频一区| 高清在线视频日韩欧美| 国产精品久久久久一区二区| 色琪琪综合男人的天堂aⅴ视频| 成人有码在线视频| 久热精品视频在线观看一区| 日韩精品在线观看视频| 欧美国产日本高清在线| 97av视频在线| 欧美精品在线看| 久久国产精品亚洲| 国产美女直播视频一区| 久久精品一区中文字幕| 色琪琪综合男人的天堂aⅴ视频| 国内精品一区二区三区四区| 色综合色综合久久综合频道88| 国产成人精品在线视频| 一区二区三区四区精品| 最近2019中文字幕第三页视频| 国产精品69久久| 国产精品高清免费在线观看| 亚洲欧美日韩久久久久久| 日韩中文在线中文网三级| 2021久久精品国产99国产精品| 精品久久久久久久久久久久久久| 日韩中文第一页| 亚洲三级av在线| 精品久久中文字幕| 中文字幕精品一区久久久久| 欧美日韩国产一区中文午夜| 91精品国产99| 欧美裸体男粗大视频在线观看| 亚洲欧洲在线观看| 日韩中文字幕在线免费观看| 成人欧美一区二区三区在线| 国产亚洲精品日韩| 欧美日韩亚洲系列| 青青久久aⅴ北条麻妃| 综合136福利视频在线| 日韩欧美成人区| 欧美黑人极品猛少妇色xxxxx| 日韩欧美精品免费在线| 亚洲第一视频在线观看| 亚洲国产又黄又爽女人高潮的| 国产欧美日韩专区发布| 亚洲天堂2020| 91夜夜揉人人捏人人添红杏| 成人av.网址在线网站| 中文字幕一区日韩电影| 日韩在线一区二区三区免费视频| 91久久久国产精品| 亚洲最大av在线| 国产人妖伪娘一区91| 伊人av综合网| 亚洲美女视频网站| 中文字幕亚洲情99在线| 超碰日本道色综合久久综合| 亚洲国产精品嫩草影院久久| 国产小视频国产精品| 国产精品吹潮在线观看| 国产91精品久久久久久久| 精品久久久久久中文字幕| 欧美黑人狂野猛交老妇| 久久国产精品电影| 国产亚洲精品久久久久久牛牛| 精品久久久中文| 成人国产精品免费视频| 亚洲人高潮女人毛茸茸| 国产成人精品免费视频| 亚洲日本成人女熟在线观看| 韩剧1988免费观看全集|