婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Ajax和跨域問題深入解析

Ajax和跨域問題深入解析

熱門標簽:東平縣地圖標注app 上海企業外呼系統價錢 大眾點評400電話怎么申請 地圖標注推銷坑人 電銷機器人 長春 怎樣在地圖標注文字 立陶宛地圖標注 河間市地圖標注app 中國地圖標注不明確情況介紹表

什么是ajax

Ajax(Asynchronous JavaScript and XML),是一種可以向服務器請求額外的數據并且無需刷新頁面的技術,ajax的出現帶來了更好的用戶體驗.

Ajax的核心就是XMLHttpRequest(XHR)對象.XHR為向服務器發送請求和解析服務器響應提供了流暢的接口.可以使用XHR對象獲取新數據,通過DOM將新數據插入到頁面.雖然名字中包含XML,但是ajax通信和數據格式無關;這種技術就是可以不用刷新就從服務器獲取數據,但是不一定是XML數據,也可以是json.

XMLHttpRequest對象

XHR的用法

1.創建一個XMLHttpRequest對象

2.發送請求

1).設置請求行 xhr.open()
2).POST請求需要設置請求頭 xhr.setRequestHeader() POST請求頭Content-Type的值: application/x-www-form-urlencoded
3).設置請求體 xhr.send() get請求傳null,post根據情況

3.處理服務器響應

先判斷響應狀態碼和異步對象是否解析完畢.

服務器返回的狀態碼 status

1xx:消息
2xx:成功
3xx:重定向
4xx:請求錯誤
5xx:服務器錯誤

異步對象的狀態碼 readystate

0:異步對象已經創建
1:異步對象初始化完成,發送請求
2:接收服務器返回的原始數據
3:數據正在解析,解析需要時間
4:數據解析完成,數據可以使用了

XML

XML的特點,出身名門,W3C制定,微軟和IBM曾經共同大力推薦過的數據格式.XML 指可擴展標記語言(Extensible Markup Language),被設計用來傳輸和存儲數據,HTML 是設計用來表示頁面的.

語法規則:和HTML差不多,都是通過標記來表示的

特殊符號:比如>要使用實體-轉移字符

xml的解析需要前后臺配合:
1.后臺在返回的時候,在響應頭中設置Content-Type的值為 application/xml
2.前臺異步對象在接收后臺數據時,記得按照xml的方式來接收,xhr.responseXML,并且它返回的是一個object對象,內容是#document

JSON

JSON(JavaScript Object Notation),出身草根,是 Javascript 的子集,專門負責描述數據格式.JSON本身是一個特殊格式的字符串,可以轉換成js對象,是網絡上用來傳輸數據使用最廣泛的數據格式,沒有之一.

語法規則:數據以 key/value 值對表示,數據由逗號分隔,大括號保存對象,中括號保存數組,名稱和值都需要使用雙引號包含(這個是和js的一點小區別).
js中解析/操作JSON:
1.JSON.parse(json字符串); 將一個json格式的字符串解析成js對象
2.JSON.stringify(js對象); 將一個js對象轉成一個json格式的字符串

自己封裝一個ajax

function pinjieData(obj) {
 //obj 就相當于 {key:value,key:value}
 //最終拼接成鍵值對的字符串 "key:value,key:value"
 var finalData = "";
 for(key in obj){
  finalData+=key+"="+obj[key]+""; //key:value,key:value
 }
 return finalData.slice(0,-1);//key:value,key:value
}

function ajax(obj) {
 var url = obj.url;
 var method = obj.method.toLowerCase();
 var success = obj.success;
 var finalData = pinjieData(obj.data);
 //finalData最終的效果key:value,key:value

 //1.創建xhr對象
 var xhr = new XMLHttpRequest();
 //get方法拼接地址,xhr.send(null)
 if (method=='get'){
  url = url + "?"+finalData;
  finalData = null;
 }

 //2.設置請求行
 xhr.open(method,url);

 // 如果是post請求,要設置請求頭
 if (method=='post'){
  xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
 }

 //3.發送
 xhr.send(finalData);

 //4.監聽服務器返回的數據
 xhr.onreadystatechange = function () {
  if (xhr.status==200  xhr.readyState==4){
   var result = null;
   //獲取返回的數據類型
   var rType = xhr.getResponseHeader("Content-Type");
   if (rType.indexOf('xml')!=-1){
    result = xhr.responseXML;
   }else if(rType.indexOf('json')!=-1){
    // JSON.parse 的意思是 將 json格式的字符串
    //比如 [{ "src":"./images/nav0.png","content":"商品分類1"}]
    //轉成js對象
    result = JSON.parse(xhr.responseText);
   }else{//當成普通的字符串去處理
    result = xhr.responseText;
   }

   //將這里解析好的數據交給頁面去渲染
   success(result);
  }
 }
}

jQuery中使用ajaxAPI jQuery ajax

jQuery為我們提供了更便利的ajax封裝使用.

$.ajax({}) 可以配置方式發起ajax請求
$.get() 以get方式發起ajax請求
$.post() 以post方式發起ajax請求
$('form').serialize() 序列化表單(格式化key=val$key=val)

參數說明

url :接口地址
type :請求方式(get/post)
timeout : 要求為Number類型的參數,設置請求超時時間(毫秒)
dataType: 應該是客戶端傳遞給服務器一個值,告訴服務器如何進行處理:
data: 發送請求數據
beforeSend: 要求為Function類型的參數,發送請求前可以修改XMLHttpRequest對象的函數,例如添加自定義HTTP頭。在beforeSend中如果返回false可以取消本次ajax請求.
success: 成功響應后調用
error: 錯誤響應時調用
complete: 響應完成時調用(包括成功和失敗)

 //ajax===get
 $.ajax({
  url:'',
  data:'key=valuekey=value',
  type:'get',
  success:function (result) {
   console.log(result);
  }
 });

//ajax===post
$.ajax({
  url:'',
  data:'key=valuekey=value',
  type:'post',
  success:function (result) {
   console.log(result);
  }
 });

//$.get
$.get({
  url:'',
  data:'key=valuekey=value',
  success:function (result) {
  console.log(result);
  }
});

//$.post
$.post({
  url:'',
  data:'key=valuekey=value',
  success:function (result) {
  console.log(result);
  }
});
//在使用jQuery中ajax發送請求的時候,只需要在 dataType中寫上jsonp即可實現ajax的跨域請求
 dataType:'jsonp' 

跨域

通過XHR實現ajax通信的一個主要限制(相同域,相同端口,相同協議),來源于跨服安全策略,默認情況下,XHR只能請求同一域的資源,這是為了防止某些惡意的行為.

CORS跨域

CORS(cross-origin resource sharing,跨域源資源共享)定義了在跨域時,瀏覽器和服務器應該如何溝通.CORS允許一個域上的網絡應用向另一個域提交跨域 AJAX 請求。實現此功能非常簡單,只需由服務器發送一個響應標頭即可。
CORS支持所有類型的HTTP請求.
服務器端對于CORS的支持,主要就是通過設置Access-Control-Allow-Origin來進行的。

JSONP

JSONP由回調函數和數據組成.JSONP只支持GET請求.JSONP的優勢在于支持老式瀏覽器,以及可以向不支持CORS的網站請求數據.
JSONP通過動態script>元素來使用,src屬性知道一個跨域URL,JSONP是有效的JavaScript代碼,瀏覽器可以跨域請求JS文件.
優點:簡單易用,可以直接訪問響應文本,支持在瀏覽器和服務器之間雙向通信.
缺點:1.JSONP是從其他域加載代碼執行,存在不安全風險.2.不好確定JSONP請求是否成敗.

通過修改document.domain來跨子域

使用window.name來進行跨域

HTML5中新引進 window.postMessage方法來跨域傳送數據

flash

iframe

服務器設置代理頁面

圖像Ping

通過使用標簽,利用網頁可以從任何網頁加載圖像原理.
圖像Ping常用于跟蹤用戶點擊頁面或動態廣告曝光次數.

2個缺點:1.只支持GET請求.2.無法訪問服務器的響應文本.只能用于瀏覽器與服務器間的單項通信.

var img = new Image();
img.onload = img.onerror = function (){
alert("Done!");
};
img.src = "";

comet

一種更高級的ajax技術.ajax是頁面向服務器請求數據的技術.comet是服務器向頁面推送數據的技術.

SSE (Server-Sent Events) 服務器發送事件

Web Sockets

Web Sockets的目標是在一個單獨的持久鏈接上提供全雙工,雙向通信.

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 完美解決AJAX跨域問題
  • jquery中ajax處理跨域的三大方式
  • jquery的ajax和getJson跨域獲取json數據的實現方法
  • 跨域請求之jQuery的ajax jsonp的使用解惑
  • AJAX跨域請求json數據的實現方法
  • jquery ajax跨域解決方法(json方式)
  • Ajax實現跨域訪問的三種方法
  • jquery ajax jsonp跨域調用實例代碼
  • JQuery Ajax 跨域訪問的解決方案
  • JQuery的Ajax跨域請求原理概述及實例

標簽:銅川 四川 營口 益陽 內江 本溪 遼寧 玉樹

巨人網絡通訊聲明:本文標題《Ajax和跨域問題深入解析》,本文關鍵詞  Ajax,和,跨域,問題,深入,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Ajax和跨域問題深入解析》相關的同類信息!
  • 本頁收集關于Ajax和跨域問題深入解析的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美精选一区二区| 久久久久久麻豆| 奇米777欧美一区二区| 天天综合日日夜夜精品| 天使萌一区二区三区免费观看| 亚洲成a人片综合在线| 色狠狠综合天天综合综合| 国产午夜精品一区二区三区嫩草 | 一区二区三区在线视频观看| 亚洲日本护士毛茸茸| 国产色综合一区| 亚洲视频一区二区免费在线观看| 亚洲一区二区三区四区五区黄| 亚洲一区二区三区四区在线免费观看 | 久久精品一区四区| 国产精品剧情在线亚洲| 亚洲一区在线视频| 国产一区二区视频在线| 色偷偷久久一区二区三区| 日韩一级大片在线观看| 欧美国产精品一区| 中文字幕欧美一| 欧美色综合天天久久综合精品| 久久久一区二区三区捆绑**| 亚洲精品高清在线| 国产成人免费网站| 日本三级亚洲精品| 处破女av一区二区| 欧美一卡二卡三卡| 国产精品天干天干在线综合| 丁香亚洲综合激情啪啪综合| 日本精品一级二级| 蓝色福利精品导航| 国产精品美日韩| 欧美体内she精高潮| 日本麻豆一区二区三区视频| 日韩午夜av电影| 99在线精品视频| 日韩精品91亚洲二区在线观看| 精品粉嫩超白一线天av| 国产91丝袜在线播放0| 亚洲福中文字幕伊人影院| 久久免费视频一区| 欧美一区日韩一区| 精品视频色一区| 97久久精品人人做人人爽50路| 性欧美疯狂xxxxbbbb| 中文字幕欧美激情一区| 精品日韩成人av| 91麻豆精品91久久久久久清纯 | 国产精品自在欧美一区| 亚洲综合999| 国产精品激情偷乱一区二区∴| 欧美成人精品高清在线播放| 欧美午夜理伦三级在线观看| 色婷婷亚洲精品| 91亚洲精品久久久蜜桃| a4yy欧美一区二区三区| 粉嫩欧美一区二区三区高清影视| 精品在线视频一区| 天天做天天摸天天爽国产一区 | 亚洲最新视频在线播放| 国产精品午夜春色av| 国产精品无遮挡| 日本一区二区三区高清不卡| 国产午夜精品一区二区 | 亚洲黄色性网站| 中文字幕在线不卡一区| 亚洲国产激情av| 国产人成一区二区三区影院| 亚洲国产精品ⅴa在线观看| 欧美国产禁国产网站cc| 国产免费成人在线视频| 亚洲欧洲在线观看av| 一区二区在线观看免费| 视频一区国产视频| 日本视频中文字幕一区二区三区| 麻豆成人91精品二区三区| 国产一区二区三区精品视频| 国产精品白丝jk白祙喷水网站 | 久久综合999| 国产亚洲综合性久久久影院| 国产精品欧美一区二区三区| 亚洲欧洲日产国码二区| 亚洲国产成人精品视频| 久久精品免费看| 风流少妇一区二区| 欧美在线观看视频一区二区三区| 欧美中文字幕久久 | 日韩精品自拍偷拍| 国产女主播视频一区二区| 亚洲精品菠萝久久久久久久| 亚洲综合久久久久| 免费成人结看片| 91蜜桃婷婷狠狠久久综合9色| 欧美性感一区二区三区| 日韩一区二区不卡| 中文字幕精品在线不卡| 亚洲影院免费观看| 国产美女精品一区二区三区| 一本久道中文字幕精品亚洲嫩| 国产白丝网站精品污在线入口| 成人免费观看男女羞羞视频| 欧美日韩国产综合久久| 国产日本欧洲亚洲| 水蜜桃久久夜色精品一区的特点| 国产专区欧美精品| 91激情在线视频| 欧美精品一区二区三区蜜桃视频 | av毛片久久久久**hd| 91麻豆精品国产自产在线| 国产精品灌醉下药二区| 久久精品国产免费看久久精品| 色哟哟国产精品| 久久精品欧美一区二区三区不卡| 亚洲成人tv网| 成人av在线播放网址| 精品视频1区2区| 亚洲男同1069视频| 成人午夜碰碰视频| 久久久久综合网| 久久精品国产在热久久| 在线不卡的av| 亚洲女同ⅹxx女同tv| 一卡二卡欧美日韩| 一本大道av一区二区在线播放| 337p粉嫩大胆噜噜噜噜噜91av | jlzzjlzz亚洲日本少妇| 久久先锋资源网| 日韩成人av影视| 91精品国产综合久久国产大片| 亚洲人成亚洲人成在线观看图片 | 国产欧美日韩三区| 免费成人小视频| 欧美精品日韩精品| 亚洲国产人成综合网站| 欧美专区亚洲专区| 亚洲丰满少妇videoshd| 欧美亚洲综合网| 日日摸夜夜添夜夜添国产精品 | 秋霞电影网一区二区| 色婷婷亚洲精品| 亚洲黄色av一区| 欧美视频在线一区二区三区| 亚洲一区二区三区在线看| 色999日韩国产欧美一区二区| 亚洲天天做日日做天天谢日日欢| 国产凹凸在线观看一区二区| 国产片一区二区三区| 国产91高潮流白浆在线麻豆| 国产日韩av一区二区| 国产99久久久国产精品潘金网站| 久久久综合视频| 国产精品99久久久| 久久久国产精品午夜一区ai换脸| 国产精品中文有码| 久久久久久久综合日本| 成人激情黄色小说| 国产精品欧美精品| 99免费精品视频| 污片在线观看一区二区| 欧美高清dvd| 日韩电影免费在线看| 欧美视频中文字幕| 免费在线观看一区| 国产视频一区不卡| 91成人免费网站| 日本欧美加勒比视频| 欧美tickling网站挠脚心| 成人av在线观| 国产精品青草久久| 欧美日韩国产乱码电影| 久久精品国产77777蜜臀| 久久久久久久综合日本| 不卡高清视频专区| 亚洲国产一区二区三区青草影视| 欧美精品日韩综合在线| 国产一区二区免费看| 一区二区三区蜜桃| 2022国产精品视频| 在线免费观看日韩欧美| 午夜精品123| 精品福利在线导航| 欧美日韩高清一区| 99riav久久精品riav| 日本亚洲免费观看| 亚洲免费高清视频在线| 久久人人超碰精品| 亚洲男同性视频| 国产欧美日韩麻豆91| 精品日韩成人av| 91麻豆精品国产91久久久久久 | 2020国产精品| 欧美性生活久久| 不卡视频在线看| 激情文学综合网| 日本亚洲免费观看| 亚洲一区免费观看| 综合激情成人伊人| 国产精品久久久久9999吃药|