精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

前端跨域整理

開發 前端
跨域一詞從字面意思看,就是跨域名嘛,但實際上跨域的范圍絕對不止那么狹隘。具體概念如下:只要協議、域名、端口有任何一個不同,都被當作是不同的域。之所以會產生跨域這個問題呢,其實也很容易想明白,要是隨便引用外部文件,不同標簽下的頁面引用類似的彼此的文件,瀏覽器很容易懵逼的,安全也得不到保障了就。

[[175066]]

前言

原文地址:前端跨域總結

博主博客地址:Damonare的個人博客

相信每一個前端er對于跨域這兩個字都不會陌生,在實際項目中應用也是比較多的。但跨域方法的多種多樣實在讓人目不暇接。老規矩,碰到這種情況,就只能自己總結一篇博客,作為記錄。

正文

1. 什么是跨域?

跨域一詞從字面意思看,就是跨域名嘛,但實際上跨域的范圍絕對不止那么狹隘。具體概念如下:只要協議、域名、端口有任何一個不同,都被當作是不同的域。之所以會產生跨域這個問題呢,其實也很容易想明白,要是隨便引用外部文件,不同標簽下的頁面引用類似的彼此的文件,瀏覽器很容易懵逼的,安全也得不到保障了就。什么事,都是安全***嘛。但在安全限制的同時也給注入iframe或是ajax應用上帶來了不少麻煩。所以我們要通過一些方法使本域的js能夠操作其他域的頁面對象或者使其他域的js能操作本域的頁面對象(iframe之間)。下面是具體的跨域情況詳解: 

  1. URL                      說明       是否允許通信 
  2. http://www.a.com/a.js 
  3. http://www.a.com/b.js     同一域名下   允許 
  4.  
  5. http://www.a.com/lab/a.js 
  6. http://www.a.com/script/b.js 同一域名下不同文件夾 允許 
  7.  
  8. http://www.a.com:8000/a.js 
  9. http://www.a.com/b.js     同一域名,不同端口  不允許 
  10.  
  11. http://www.a.com/a.js 
  12. https://www.a.com/b.js 同一域名,不同協議 不允許 
  13.  
  14. http://www.a.com/a.js 
  15. http://70.32.92.74/b.js 域名和域名對應ip 不允許 
  16.  
  17. http://www.a.com/a.js 
  18. http://script.a.com/b.js 主域相同,子域不同 不允許(cookie這種情況下也不允許訪問) 
  19.  
  20. http://www.a.com/a.js 
  21. http://a.com/b.js 同一域名,不同二級域名(同上) 不允許(cookie這種情況下也不允許訪問) 
  22.  
  23. http://www.cnblogs.com/a.js 
  24. http://www.a.com/b.js 不同域名 不允許  

這里我們需要注意兩點:

  • 如果是協議和端口造成的跨域問題“前臺”是無能為力的;
  • 在跨域問題上,域僅僅是通過“URL的首部”來識別而不會去嘗試判斷相同的ip地址對應著兩個域或兩個域是否在同一個ip上。(“URL的首部”指window.location.protocol +window.location.host,也可以理解為“Domains, protocols and ports must match”。)

2. 通過document.domain跨域

前面說過了,瀏覽器有一個同源策略,其限制之一是不能通過ajax的方法去請求不同源中的文檔。 第二個限制是瀏覽器中不同域的框架之間是不能進行js的交互操作的。不同的框架之間是可以獲取window對象的,但卻無法獲取相應的屬性和方法。比如,有一個頁面,它的地址是http://www.damonare.cn/a.html , 在這個頁面里面有一個iframe,它的src是http://damonare.cn/b.html, 很顯然,這個頁面與它里面的iframe框架是不同域的,所以我們是無法通過在頁面中書寫js代碼來獲取iframe中的東西的:

  1. <script type="text/javascript"
  2.     function test(){ 
  3.         var iframe = document.getElementById('ifame'); 
  4.         var win = document.contentWindow;//可以獲取到iframe里的window對象,但該window對象的屬性和方法幾乎是不可用的 
  5.         var doc = win.document;//這里獲取不到iframe里的document對象 
  6.         var name = win.name;//這里同樣獲取不到window對象的name屬性 
  7.     } 
  8. </script> 
  9. <iframe id = "iframe" src="http://damonare.cn/b.html" onload = "test()"></iframe>  

這個時候,document.domain就可以派上用場了,我們只要把http://www.damonare.cn/a.html和http://damonare.cn/b.html這兩個頁面的document.domain都設成相同的域名就可以了。但要注意的是,document.domain的設置是有限制的,我們只能把document.domain設置成自身或更高一級的父域,且主域必須相同。

  1. <iframe id = "iframe" src="http://damonare.cn/b.html" onload = "test()"></iframe> 
  2. <script type="text/javascript"
  3.     document.domain = 'damonare.cn';//設置成主域 
  4.     function test(){ 
  5.         alert(document.getElementById('iframe').contentWindow);//contentWindow 可取得子窗口的 window 對象 
  6.     } 
  7. </script>  
  1. <script type="text/javascript"
  2.     document.domain = 'damonare.cn';//在iframe載入這個頁面也設置document.domain,使之與主頁面的document.domain相同 
  3. </script>  

修改document.domain的方法只適用于不同子域的框架間的交互。

3. 通過location.hash跨域

因為父窗口可以對iframe進行URL讀寫,iframe也可以讀寫父窗口的URL,URL有一部分被稱為hash,就是#號及其后面的字符,它一般用于瀏覽器錨點定位,Server端并不關心這部分,應該說HTTP請求過程中不會攜帶hash,所以這部分的修改不會產生HTTP請求,但是會產生瀏覽器歷史記錄。此方法的原理就是改變URL的hash部分來進行雙向通信。每個window通過改變其他 window的location來發送消息(由于兩個頁面不在同一個域下IE、Chrome不允許修改parent.location.hash的值,所以要借助于父窗口域名下的一個代理iframe),并通過監聽自己的URL的變化來接收消息。這個方式的通信會造成一些不必要的瀏覽器歷史記錄,而且有些瀏覽器不支持onhashchange事件,需要輪詢來獲知URL的改變,***,這樣做也存在缺點,諸如數據直接暴露在了url中,數據容量和類型都有限等。下面舉例說明:

假如父頁面是baidu.com/a.html,iframe嵌入的頁面為google.com/b.html(此處省略了域名等url屬性),要實現此兩個頁面間的通信可以通過以下方法。

  • a.html傳送數據到b.html
    • a.html下修改iframe的src為google.com/b.html#paco
    • b.html監聽到url發生變化,觸發相應操作
  • b.html傳送數據到a.html,由于兩個頁面不在同一個域下IE、Chrome不允許修改parent.location.hash的值,所以要借助于父窗口域名下的一個代理iframe
    • b.html下創建一個隱藏的iframe,此iframe的src是baidu.com域下的,并掛上要傳送的hash數據,如src="http://www.baidu.com/proxy.html#data"
    • proxy.html監聽到url發生變化,修改a.html的url(因為a.html和proxy.html同域,所以proxy.html可修改a.html的url hash)
    • a.html監聽到url發生變化,觸發相應操作

b.html頁面的關鍵代碼如下:

  1. try {   
  2.     parent.location.hash = 'data';   
  3. } catch (e) {   
  4.     // ie、chrome的安全機制無法修改parent.location.hash,   
  5.     var ifrproxy = document.createElement('iframe');   
  6.     ifrproxy.style.display = 'none';   
  7.     ifrproxy.src = "http://www.baidu.com/proxy.html#data";   
  8.     document.body.appendChild(ifrproxy);   
  9.  

proxy.html頁面的關鍵代碼如下 :

  1. //因為parent.parent(即baidu.com/a.html)和baidu.com/proxy.html屬于同一個域,所以可以改變其location.hash的值   
  2. parent.parent.location.hash = self.location.hash.substring(1);   

4. 通過HTML5的postMessage方法跨域

高級瀏覽器Internet Explorer 8+, chrome,Firefox , Opera 和 Safari 都將支持這個功能。這個功能主要包括接受信息的"message"事件和發送消息的"postMessage"方法。比如damonare.cn域的A頁面通過iframe嵌入了一個google.com域的B頁面,可以通過以下方法實現A和B的通信

A頁面通過postMessage方法發送消息:

  1. window.onload = function() {   
  2.     var ifr = document.getElementById('ifr');   
  3.     var targetOrigin = "http://www.google.com";   
  4.     ifr.contentWindow.postMessage('hello world!', targetOrigin);   
  5. };  

postMessage的使用方法:

  • otherWindow.postMessage(message, targetOrigin);
    • otherWindow:指目標窗口,也就是給哪個window發消息,是 window.frames 屬性的成員或者由 window.open 方法創建的窗口
    • message: 是要發送的消息,類型為 String、Object (IE8、9 不支持)
    • targetOrigin: 是限定消息接收范圍,不限制請使用 '*

B頁面通過message事件監聽并接受消息:

  1. var onmessage = function (event) {   
  2.   var data = event.data;//消息   
  3.   var origin = event.origin;//消息來源地址   
  4.   var source = event.source;//源Window對象   
  5.   if(origin=="http://www.baidu.com"){   
  6. console.log(data);//hello world!   
  7.   }   
  8. };   
  9. if (typeof window.addEventListener != 'undefined') {   
  10.   window.addEventListener('message', onmessage, false);   
  11. else if (typeof window.attachEvent != 'undefined') {   
  12.   //for ie   
  13.   window.attachEvent('onmessage', onmessage);   
  14. }    

同理,也可以B頁面發送消息,然后A頁面監聽并接受消息。

5.通過jsonp跨域

剛才說的這幾種都是雙向通信的,即兩個iframe,頁面與iframe或是頁面與頁面之間的,下面說幾種單項跨域的(一般用來獲取數據),因為通過script標簽引入的js是不受同源策略的限制的。所以我們可以通過script標簽引入一個js或者是一個其他后綴形式(如php,jsp等)的文件,此文件返回一個js函數的調用。

比如,有個a.html頁面,它里面的代碼需要利用ajax獲取一個不同域上的json數據,假設這個json數據地址是http://damonare.cn/data.php,那么a.html中的代碼就可以這樣:

  1. <script type="text/javascript"
  2.     function dosomething(jsondata){ 
  3.         //處理獲得的json數據 
  4.     } 
  5. </script> 
  6. <script src="http://example.com/data.php?callback=dosomething"></script>  

我們看到獲取數據的地址后面還有一個callback參數,按慣例是用這個參數名,但是你用其他的也一樣。當然如果獲取數據的jsonp地址頁面不是你自己能控制的,就得按照提供數據的那一方的規定格式來操作了。

因為是當做一個js文件來引入的,所以http://damonare.cn/data.php返回的必須是一個能執行的js文件,所以這個頁面的php代碼可能是這樣的(一定要和后端約定好哦):

  1. <?php 
  2. $callback = $_GET['callback'];//得到回調函數名 
  3. $data = array('a','b','c');//要返回的數據 
  4. echo $callback.'('.json_encode($data).')';//輸出 
  5. ?>  

最終,輸出結果為:dosomething(['a','b','c']);

如果你的頁面使用jquery,那么通過它封裝的方法就能很方便的來進行jsonp操作了。

  1. <script type="text/javascript"
  2.     $.getJSON('http://example.com/data.php?callback=?,function(jsondata)'){ 
  3.         //處理獲得的json數據 
  4.     }); 
  5. </script>  

jquery會自動生成一個全局函數來替換callback=?中的問號,之后獲取到數據后又會自動銷毀,實際上就是起一個臨時代理函數的作用。$.getJSON方法會自動判斷是否跨域,不跨域的話,就調用普通的ajax方法;跨域的話,則會以異步加載js文件的形式來調用jsonp的回調函數。

  • JSONP的優缺點
    • JSONP的優點是:它不像XMLHttpRequest對象實現的Ajax請求那樣受到同源策略的限制;它的兼容性更好,在更加古老的瀏覽器中都可以運行,不需要XMLHttpRequest或ActiveX的支持;并且在請求完畢后可以通過調用callback的方式回傳結果。
    • JSONP的缺點則是:它只支持GET請求而不支持POST等其它類型的HTTP請求;它只支持跨域HTTP請求這種情況,不能解決不同域的兩個頁面之間如何進行JavaScript調用的問題。

6. 通過CORS跨域

CORS(Cross-Origin Resource Sharing)跨域資源共享,定義了必須在訪問跨域資源時,瀏覽器與服務器應該如何溝通。CORS背后的基本思想就是使用自定義的HTTP頭部讓瀏覽器與服務器進行溝通,從而決定請求或響應是應該成功還是失敗。目前,所有瀏覽器都支持該功能,IE瀏覽器不能低于IE10。整個CORS通信過程,都是瀏覽器自動完成,不需要用戶參與。對于開發者來說,CORS通信與同源的AJAX通信沒有差別,代碼完全一樣。瀏覽器一旦發現AJAX請求跨源,就會自動添加一些附加的頭信息,有時還會多出一次附加的請求,但用戶不會有感覺。

因此,實現CORS通信的關鍵是服務器。只要服務器實現了CORS接口,就可以跨源通信。

平時的ajax請求可能是這樣的:

  1. <script type="text/javascript"
  2.     var xhr = new XMLHttpRequest(); 
  3.     xhr.open("POST""/damonare",true); 
  4.     xhr.send(); 
  5. </script>  

以上damonare部分是相對路徑,如果我們要使用CORS,相關Ajax代碼可能如下所示:

  1. <script type="text/javascript"
  2.     var xhr = new XMLHttpRequest(); 
  3.     xhr.open("GET""http://segmentfault.com/u/trigkit4/",true); 
  4.     xhr.send(); 
  5. </script>  

代碼與之前的區別就在于相對路徑換成了其他域的絕對路徑,也就是你要跨域訪問的接口地址。

服務器端對于CORS的支持,主要就是通過設置Access-Control-Allow-Origin來進行的。如果瀏覽器檢測到相應的設置,就可以允許Ajax進行跨域的訪問。關于CORS更多了解可以看下阮一峰老師的這一篇文章:跨域資源共享 CORS 詳解

  • CORS和JSONP對比
    • JSONP只能實現GET請求,而CORS支持所有類型的HTTP請求。
    • 使用CORS,開發者可以使用普通的XMLHttpRequest發起請求和獲得數據,比起JSONP有更好的錯誤處理。
    • JSONP主要被老的瀏覽器支持,它們往往不支持CORS,而絕大多數現代瀏覽器都已經支持了CORS)。

CORS與JSONP相比,無疑更為先進、方便和可靠。

7. 通過window.name跨域

window對象有個name屬性,該屬性有個特征:即在一個窗口(window)的生命周期內,窗口載入的所有的頁面都是共享一個window.name的,每個頁面對window.name都有讀寫的權限,window.name是持久存在一個窗口載入過的所有頁面中的,并不會因新頁面的載入而進行重置。

比如:我們在任意一個頁面輸入

  1. window.name = "My window's name"
  2. setTimeout(function(){ 
  3.     window.location.href = "http://damonare.cn/"
  4. },1000)  

進入damonare.cn頁面后我們再檢測再檢測 window.name :

  1. window.name; // My window's name 

可以看到,如果在一個標簽里面跳轉網頁的話,我們的 window.name 是不會改變的。基于這個思想,我們可以在某個頁面設置好 window.name 的值,然后跳轉到另外一個頁面。在這個頁面中就可以獲取到我們剛剛設置的 window.name 了。

由于安全原因,瀏覽器始終會保持 window.name 是string 類型。

同樣這個方法也可以應用到和iframe的交互來:

比如:我的頁面(http://damonare.cn/index.html)中內嵌了一個iframe:

  1. <iframe id="iframe" src="http://www.google.com/iframe.html"></iframe> 

在 iframe.html 中設置好了 window.name 為我們要傳遞的字符串。我們在 index.html 中寫了下面的代碼:

  1. var iframe = document.getElementById('iframe'); 
  2. var data = ''
  3.  
  4. iframe.onload = function() { 
  5.     data = iframe.contentWindow.name
  6. };  

Boom!報錯!肯定的,因為兩個頁面不同源嘛,想要解決這個問題可以這樣干:

  1. var iframe = document.getElementById('iframe'); 
  2. var data = ''
  3.  
  4. iframe.onload = function() { 
  5.     iframe.onload = function(){ 
  6.         data = iframe.contentWindow.name
  7.     } 
  8.     iframe.src = 'about:blank'
  9. };  

或者將里面的 about:blank 替換成某個同源頁面(about:blank,javascript: 和 data: 中的內容,繼承了載入他們的頁面的源。)

這種方法與 document.domain 方法相比,放寬了域名后綴要相同的限制,可以從任意頁面獲取 string 類型的數據。

后記

其它諸如中間件跨域,服務器代理跨域,Flash URLLoader跨域,動態創建script標簽(簡化版本的jsonp)不作討論。

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2017-08-20 12:49:59

瀏覽器跨域服務器

2021-06-06 13:05:15

前端跨域CORS

2017-05-25 09:45:35

2018-11-26 14:52:12

Web前端跨域

2019-06-21 09:25:29

前端跨域JavaScript

2022-12-26 00:00:01

Go框架前端

2019-04-10 10:32:16

CORSNginx反向代理

2021-04-27 15:20:41

人工智能機器學習技術

2021-06-15 07:32:59

Cookie和Sess實現跨域

2021-07-05 07:02:33

前端跨域策略

2024-05-20 09:28:44

Spring客戶端瀏覽器

2021-05-06 20:51:52

跨域http協議

2017-06-06 14:13:16

2009-12-08 14:43:04

WCF跨域

2021-06-10 18:11:02

Cors跨域Web開發Cors

2016-09-19 13:52:26

Javascript跨域前端

2020-12-31 08:14:39

VueAxiosJavaScript

2023-12-12 09:45:16

前端瀏覽器

2020-09-17 13:33:39

開發

2011-04-18 14:23:37

javascriptHTML
點贊
收藏

51CTO技術棧公眾號

漫画在线观看av| 欧美重口乱码一区二区| 九九热精品在线观看| 一本一道久久a久久| 亚洲一区二区偷拍精品| 欧美日本亚洲| 国产亚洲精品美女久久久| 成人免费观看在线| 四虎精品在永久在线观看| 日韩电影在线免费| 久久这里只有精品99| 亚洲永久无码7777kkk| 久久麻豆视频| 欧美日韩在线另类| 亚洲啪啪av| 无码国产精品一区二区色情男同| 日韩国产一区二| 欧美精品www| xxxxx99| 日韩精品一区二区三区中文字幕| 一本到高清视频免费精品| 色婷婷777777仙踪林| www五月婷婷| 免费在线观看视频一区| 97精品国产97久久久久久免费| 摸摸摸bbb毛毛毛片| 911精品国产| 在线综合+亚洲+欧美中文字幕| 久久免费看毛片| 少妇性bbb搡bbb爽爽爽欧美| 国产伦精品一区二区三区视频青涩| 国产精品1234| 天天操天天爽天天干| 亚洲色图88| 中文字幕日韩欧美| 国产免费看av| 蜜桃精品视频| 在线电影一区二区三区| 天天天干夜夜夜操| 中文字幕在线视频网站| 亚洲香肠在线观看| avav在线播放| 操你啦视频在线| 日韩美女视频一区| 久久一区免费| 亚洲欧美自偷自拍| 扒开jk护士狂揉免费| 制服诱惑亚洲| 在线视频观看一区| 国产综合免费视频| 一区二区精品伦理... | 成人av色在线观看| 91porny九色| 玖玖视频精品| 国产成人精品av在线| 一级黄色大片视频| 国产精品一区毛片| 欧美一级视频一区二区| 在线能看的av| 欧美综合国产| 国产精品高清在线| 在线观看色网站| 卡一卡二国产精品| 91精品视频在线免费观看| 波多野结衣一区二区三区在线| 亚洲理伦在线| 97超级碰碰人国产在线观看| 多男操一女视频| 伊人久久大香线蕉综合四虎小说| 另类图片亚洲另类| 久久久久久久久久一区二区三区| 欧美日韩网站| 91精品国产亚洲| 亚洲午夜在线播放| 美女毛片在线观看| 中文字幕成在线观看| 色综合视频在线观看| 亚欧无线一线二线三线区别| 亚洲美女尤物影院| 亚洲午夜久久久| 99久热在线精品视频| xxx性欧美| 欧美日韩人人澡狠狠躁视频| 国产第一页视频| 情侣黄网站免费看| 蜜桃视频在线免费| 国产欧美日本一区二区三区| 一本一本a久久| 青春草视频在线| 欧美日韩亚洲网| 天堂社区在线视频| 欧美日韩破处视频| 精品欧美乱码久久久久久1区2区| 午夜一区二区三区免费| 999国产精品999久久久久久| 久久琪琪电影院| 九九视频在线观看| 久久九九国产| 99re国产在线播放| 男同在线观看| 一区二区在线观看视频| 久久久久久久少妇| 成人在线免费电影网站| 日韩欧美国产综合在线一区二区三区| 精品夜夜澡人妻无码av| 国产高清一区| 欧美自拍大量在线观看| 国产日韩在线免费观看| 国产一区不卡精品| 日本午夜一区二区三区| 国产理论电影在线| 精品视频在线免费看| 手机在线观看日韩av| 哺乳一区二区三区中文视频| 最新国产精品拍自在线播放| 你懂的国产视频| 国产成人午夜99999| 日韩精品久久久毛片一区二区| av资源中文在线| 在线播放日韩导航| 国产又粗又猛又爽又黄av | 亚洲日本精品一区| 国产精品迅雷| 精品av久久707| 日本黄色片免费观看| 日韩高清国产一区在线| 久久精品综合一区| 日本大胆在线观看| 欧美日韩国产三级| 在线91免费看| 色欲欲www成人网站| 欧美理论在线播放| 国内精品久久久久久中文字幕| 中文字幕一区二区三区四区视频 | 毛片一区二区三区| 免费久久99精品国产自| 国产精品va在线观看视色| 亚洲福利电影网| 亚洲成a人片在线www| 91成人国产| 国产精品热视频| 国产大学生校花援交在线播放| 天天操天天干天天综合网| 成人黄色一区二区| 亚洲人成精品久久久| 奇米四色中文综合久久| www.天堂在线| 中文一区二区在线观看| 四季av一区二区| 欧美一区二区麻豆红桃视频| 国产精品欧美日韩| 午夜在线小视频| 欧美精品第1页| 欧美色视频一区二区三区在线观看| 日韩**一区毛片| 亚洲国产一区二区三区在线 | 91在线短视频| 女囚岛在线观看| 精品国产人成亚洲区| 久久精品视频国产| 26uuu精品一区二区在线观看| 婷婷无套内射影院| 色综合www| 国产精品久久久久久久app| 都市激情一区| 欧美三日本三级三级在线播放| 在线观看免费黄色网址| 蜜桃传媒麻豆第一区在线观看| 亚洲精品一区二区三区蜜桃久| 小黄鸭精品aⅴ导航网站入口| 中文字幕精品在线| 国产sm主人调教女m视频| 亚洲一卡二卡三卡四卡| 无码国产精品一区二区高潮| 最新成人av网站| 欧美人xxxxx| 色综合视频一区二区三区日韩| 久久香蕉国产线看观看av| 丰满大乳国产精品| 欧美日韩在线影院| 久久久免费看片| 国产久卡久卡久卡久卡视频精品| 国产av国片精品| 日本黄色精品| 91影视免费在线观看| 国产激情在线视频| 亚洲欧美国产日韩天堂区| 欧美性猛交xxxx乱大交hd| 国产精品亲子乱子伦xxxx裸| 想看黄色一级片| 亚洲视频www| 中文字幕日韩一区二区三区| 国产欧美日韩电影| 日本午夜在线亚洲.国产| 美女扒开大腿让男人桶| yellow字幕网在线| 亚洲一级片在线看| 国产又黄又猛又爽| 天天免费综合色| 三级av在线免费观看| 91免费小视频| 在线观看视频你懂得| 麻豆亚洲精品| 国产手机视频在线观看| 成人精品动漫| 国产91精品久久久久久| 99自拍视频在线观看| 亚洲偷欧美偷国内偷| 亚洲av无码一区二区乱子伦 | 97人妻精品一区二区三区| 亚洲高清久久久| chinese全程对白| 久久久激情视频| 91精品啪在线观看国产| 久久久久国产精品一区二区| 国产美女视频免费| 国产影视一区| 久草精品电影| 88久久精品| 亚洲a一级视频| 国内激情视频在线观看| 久久91精品国产91久久跳| 你懂的在线观看视频网站| 亚洲成年人在线播放| 亚洲一区二区三区精品视频| 欧美日韩色网| 亚洲欧美日韩第一区| 刘玥91精选国产在线观看| 欧美嫩在线观看| 最新黄色网址在线观看| 色猫猫国产区一区二在线视频| 91香蕉在线视频| 一区二区三区在线视频免费| 国产一区二区三区四区在线| 久久久美女毛片| 人妻精品久久久久中文字幕| 99精品欧美一区二区三区综合在线| 国产精品999.| 激情五月婷婷综合网| 色片在线免费观看| 日本v片在线高清不卡在线观看| 欧洲黄色一级视频| 99综合视频| 怡红院av亚洲一区二区三区h| 一区视频在线看| 狠狠噜天天噜日日噜| 中文视频一区| 欧美在线观看黄| 国产中文一区| 男女日批视频在线观看| 国产一区二区三区四区三区四| 日本黄大片在线观看| 狠狠入ady亚洲精品| 一区二区在线观看网站| 精品久久成人| 五月天婷亚洲天综合网鲁鲁鲁| 国产成人高清精品免费5388| 成人免费视频网址| 国产精品视频首页| 国产精品黄视频| 国产丝袜精品丝袜| 欧美亚洲国产视频小说| 日韩精品影院| 国产有码在线一区二区视频| 国产区一区二| 激情小说网站亚洲综合网| 欧美三级午夜理伦三级在线观看| 乱色588欧美| 日韩夫妻性生活xx| 国产.欧美.日韩| 午夜视频在线瓜伦| 日韩精品乱码免费| www.成年人| 麻豆精品在线视频| 在线观看网站黄| 97久久超碰国产精品| 成年女人免费视频| 国产成人三级在线观看| 性久久久久久久久久| 久久久久国产一区二区三区四区 | 国产视频手机在线| 亚洲国产婷婷香蕉久久久久久| 日韩电影免费| 日韩专区在线播放| aaa在线观看| 久久亚洲精品一区二区| 国产传媒在线观看| 国产欧美va欧美va香蕉在| av不卡一区| 久久精品日产第一区二区三区乱码 | 亚洲免费影视| 男女啪啪网站视频| 国产成人免费视| 337人体粉嫩噜噜噜| 中文字幕不卡在线观看| 手机av在线不卡| 亚洲制服丝袜av| 亚洲日本视频在线观看| 欧美一区二区视频网站| 黄网站在线观看| 不卡伊人av在线播放| 校园春色亚洲| 91成人免费在线观看| 欧美一级精品| 亚洲熟妇av日韩熟妇在线| 国产一区欧美日韩| 色欲AV无码精品一区二区久久| 亚洲精品免费在线观看| 日本成人一级片| 亚洲国产欧美精品| 天堂亚洲精品| 国产精品一区二区电影| 久9re热视频这里只有精品| 欧美一级黄色录像片| 三级久久三级久久久| 中文字幕在线播放一区| 亚洲欧洲精品成人久久奇米网| 97免费在线观看视频| 欧美videos中文字幕| av电影网站在线观看| 天天射—综合中文网| 久久综合色视频| 成人综合婷婷国产精品久久免费| 日本一区二区三区网站| 亚洲午夜国产一区99re久久| 国产精品国产av| 亚洲嫩模很污视频| 国产资源在线观看入口av| 91精品网站| 综合久久精品| 图片区乱熟图片区亚洲| 中文欧美字幕免费| 亚洲中文无码av在线| 亚洲欧美制服第一页| 2019中文字幕在线电影免费| 粉嫩高清一区二区三区精品视频| 在线中文一区| 欧美人与性动交α欧美精品| 亚洲免费观看高清完整版在线观看熊| 亚洲av无码乱码国产精品fc2| 亚洲第一福利在线观看| jizz一区二区三区| 高清一区二区三区视频| 黑人一区二区| 久久精品女同亚洲女同13| 亚洲大尺度视频在线观看| 男人天堂综合网| 91av在线不卡| 欧美美女在线| av丝袜天堂网| 国产精品二三区| 91精品视频免费在线观看| 久久视频在线播放| 91成人短视频在线观看| 国产91在线亚洲| 成人亚洲精品久久久久软件| 精品少妇爆乳无码av无码专区| 亚洲国产精品成人av| 国产探花视频在线观看| 久久亚洲综合网| 日韩精品高清不卡| 自拍偷拍第9页| 日韩一区二区电影在线| 国产三区在线观看| 97碰碰视频| 国产欧美丝祙| 一级肉体全黄裸片| 4438亚洲最大| 国产精品一品| 水蜜桃一区二区| 韩国欧美国产1区| 国产亚洲精品久久久久久打不开| 精品成人佐山爱一区二区| 欧美粗大gay| 综合色婷婷一区二区亚洲欧美国产| 国产精品白丝jk黑袜喷水| 国产精品.www| 伊人伊成久久人综合网小说| 国产剧情一区二区在线观看| 国产一二三四区在线观看| av激情亚洲男人天堂| 羞羞色院91蜜桃| 久久亚洲私人国产精品va | 国产亚洲欧美一区二区| 久久高清国产| 紧身裙女教师波多野结衣| 国产亚洲成人一区| 国产精品专区在线| 91免费国产在线观看| www毛片com| 久久精品中文字幕| 亚洲美女久久| 麻豆网站免费观看| 精品福利一区二区| 超碰个人在线| 日本午夜精品一区二区| 国产 日韩 欧美大片| 欧美一级视频免费观看| 久久久91精品| 精品久久成人|