精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

99视频精品| 999精品视频在这里| 国产精品美女久久久久av爽李琼| 国产日韩中文字幕| 精品无码人妻一区二区三| 欧美日韩一区二区三区四区不卡| 在线观看一区日韩| 永久免费看av| 国产日产精品久久久久久婷婷| 另类成人小视频在线| 欧美黑人性生活视频| 在线小视频你懂的| 91国内精品| 在线一区二区三区四区五区| 欧美图片激情小说| 永久av在线| 久久久亚洲精品一区二区三区 | 精品国产乱码久久久久久免费| 欧美a在线视频| 91小视频xxxx网站在线| 国产午夜精品福利| 久久精品国产一区二区三区日韩| 国产农村老头老太视频| 久久综合婷婷| 午夜精品免费视频| 天天天天天天天天操| 免费成人av| 亚洲成人免费在线视频| 天天av天天操| 久久亚洲精品爱爱| 精品免费在线观看| 欧洲精品在线播放| 麻豆网站在线看| 国产日韩欧美a| 久久99精品国产99久久| 午夜免费福利视频| 极品销魂美女一区二区三区| 国产精品爱啪在线线免费观看| 精品亚洲永久免费| 中文字幕一区二区三区久久网站 | 干b视频在线观看| 国产精品中文字幕制服诱惑| 日韩丝袜情趣美女图片| 欧美男女交配视频| jizz久久久久久| 一本大道久久a久久综合| 成品人视频ww入口| 丝袜在线观看| 伊人开心综合网| 欧美 国产 精品| 老司机精品视频在线观看6| 亚洲国产高清不卡| 亚洲高清乱码| av中文在线| 国产精品丝袜91| 亚洲国产欧美日韩| www.av在线播放| 国产精品久久久久7777按摩| 色综合电影网| 在线看黄色av| 亚洲欧美日韩在线不卡| 久久观看最新视频| 爱福利在线视频| 亚洲电影一区二区| 俄罗斯av网站| 成人私拍视频| 欧美天天综合网| 日本免费色视频| 国产精品成人3p一区二区三区| 正在播放一区二区| 久久人人爽人人片| 国产精品香蕉| 国产一区二区三区网站| 亚洲色图100p| 激情综合视频| 欧美专区在线播放| 黄色大全在线观看| 国产一区不卡在线| 成人欧美一区二区| 天堂av电影在线观看| 久久人人爽爽爽人久久久| 婷婷亚洲婷婷综合色香五月| 黄色成人影院| 亚洲国产成人av好男人在线观看| heyzo国产| 欧美系列精品| 精品国产乱码久久久久久久久| 青青草成人免费视频| 成人影视亚洲图片在线| 麻豆国产va免费精品高清在线| 久久久久性色av无码一区二区| 国产日韩欧美一区| 国产精品入口日韩视频大尺度| av中文字幕观看| 久久这里只有精品视频网| 先锋影音一区二区三区| 91最新在线视频| 色天天综合色天天久久| 亚洲AV无码久久精品国产一区| 久久九九热re6这里有精品| 中文字幕少妇一区二区三区| 久久国产精品波多野结衣| 国产毛片一区| 91手机在线播放| 国产永久免费高清在线观看视频| 亚洲精选视频在线| 欧美日韩在线成人| 成人偷拍自拍| 久久视频在线直播| 无码人妻丰满熟妇奶水区码| 国产 欧美在线| 亚洲精品一区二区三| 久久青草伊人| 欧美一级淫片007| 怡红院一区二区三区| 欧美日一区二区在线观看| 国产美女高潮久久白浆| 亚洲av成人无码久久精品老人 | 嗯用力啊快一点好舒服小柔久久| 中文字幕久精品免费视频| 久久精品国产亚洲AV无码麻豆| 人妖欧美一区二区| 蜜桃传媒视频第一区入口在线看| 日本性爱视频在线观看| 欧美日精品一区视频| 变态另类丨国产精品| 欧美激情偷拍自拍| 国产不卡av在线免费观看| 视频三区在线观看| 亚洲成人手机在线| 在线观看欧美一区二区| 日韩一区二区三区免费播放| 538国产精品一区二区在线| 丰满熟女一区二区三区| 亚洲美女免费在线| 亚洲精品永久视频| 亚洲成av人电影| 国产精品香蕉在线观看| 成人免费高清在线播放| 色婷婷av一区二区三区大白胸| 日本一卡二卡在线| 亚洲精选久久| 精品欧美一区二区三区久久久| 男男gaygays亚洲| 日韩美女在线视频| 九九视频免费在线观看| 国产超碰在线一区| 国产成人永久免费视频| 91蜜桃臀久久一区二区| 欧美另类xxx| www黄色网址| 亚洲一卡二卡三卡四卡无卡久久| 日批视频免费看| 国产综合欧美| 精品一区二区三区自拍图片区 | 极品粉嫩小仙女高潮喷水久久| 亚洲精华国产欧美| 裸模一区二区三区免费| 日韩精品麻豆| 日韩中文字幕国产精品| 91久久精品国产91性色69| 自拍偷拍亚洲综合| 肉丝美足丝袜一区二区三区四| 国产综合激情| 欧美裸体网站| 成人交换视频| 欧美伦理91i| 亚洲 国产 欧美 日韩| 色综合久久九月婷婷色综合| 亚洲色图日韩精品| 国产一区二区三区在线观看免费 | 久久97人妻无码一区二区三区| 国产不卡高清在线观看视频| 精品久久一二三| 久久最新网址| 91影院在线免费观看视频| 日本精品600av| 亚洲美女精品久久| 97人妻精品一区二区三区视频| 一区二区三区在线观看动漫| 亚洲 欧美 日韩在线| 久久久精品网| 蜜臀av.com| 思热99re视热频这里只精品| 国产精品视频久久久久| 免费在线看污片| 国产一区二区三区免费视频| 国产xxxx在线观看| 日韩欧美在线观看视频| 懂色av蜜臀av粉嫩av永久| 成人做爰69片免费看网站| 国产激情在线观看视频| 欧美国产先锋| 视频在线一区二区三区| 亚洲伊人影院| 国产精品极品尤物在线观看| 美女日批视频在线观看| 国产一区二区三区在线免费观看 | 亚洲人高潮女人毛茸茸| 国产精品怡红院| 欧美日韩精品在线观看| 糖心vlog免费在线观看| 久久久久久一级片| 男人添女人荫蒂国产| 免费成人在线网站| 亚洲熟妇av日韩熟妇在线| 午夜激情久久| 欧美精品一区二区三区在线四季| 亚洲天堂av资源在线观看| 国产精品第七影院| 偷拍自拍在线看| 九九热r在线视频精品| 1pondo在线播放免费| 日韩精品在线看| 亚洲欧美强伦一区二区| 欧美日韩国产美| 无码人妻av一区二区三区波多野| 亚洲国产欧美一区二区三区丁香婷| 日韩av毛片在线观看| 久久综合九色综合欧美亚洲| 高清中文字幕mv的电影| 精品一区二区成人精品| 日韩av片网站| 视频在线观看一区二区三区| 国产精品又粗又长| 欧美精品一线| av一区二区三区免费观看| 9999国产精品| 在线一区亚洲| 日韩理论电影大全| 亚洲国产精品视频一区| 国产99久久久国产精品成人免费| 国产在线一区二区三区四区| 综合激情久久| 国产v亚洲v天堂无码| 久久久久久爱| 亚洲xxx大片| 高清久久精品| 亚洲最大激情中文字幕| 欧美日韩黄色| 99国产高清| 91精品丝袜国产高跟在线| 97人人澡人人爽| 亚洲午夜精品| 狠狠爱一区二区三区| 成人香蕉社区| 国严精品久久久久久亚洲影视| 草草视频在线一区二区| 国产精品一区视频网站| 国产一区二区三区亚洲| 国产一区在线免费| 一区二区三区日本久久久| 免费看污久久久| 国产麻豆一区二区三区精品视频| 日本一区二区在线| 成人亚洲一区二区| 中国一级黄色录像| 丰满人妻一区二区三区大胸| 国产日韩电影| 97精品国产91久久久久久| av女在线播放| 欧洲成人免费视频| 日本成人伦理电影| 国产在线高清精品| 欧美日本三级| 久久av免费观看| 国产一卡不卡| 特级黄色录像片| 亚洲国产片色| 国产精品亚洲αv天堂无码| 日韩精品高清不卡| 国产在线观看中文字幕| 成人免费看视频| 中文字幕国产综合| 亚洲同性同志一二三专区| 精品视频一区二区在线观看| 黑人巨大精品欧美一区二区三区| 中文字幕 国产精品| 337p亚洲精品色噜噜| 日韩中文字幕综合| 中国china体内裑精亚洲片| av官网在线播放| 91成人在线播放| 青青在线精品| 久久99精品久久久久久久久久| 欧美日韩国产在线观看网站| 伊人再见免费在线观看高清版 | 日韩三区视频| 亚洲在线观看一区| 在线日韩中文| www.日本一区| 成人av在线观| 国产精品久久久免费看| 亚洲a一区二区| 中文字幕在线播出| 日韩av在线不卡| 欧洲日本在线| 欧美在线性视频| 视频亚洲一区二区| 日韩av一区二区三区在线| 欧美日本二区| 日本中文字幕二区| 久久亚洲二区三区| 2021亚洲天堂| 欧美日韩一区小说| 香蕉av在线播放| 久久久国产影院| 日韩欧美一区二区三区在线观看| 91亚色免费| 天天影视天天精品| 国产97色在线 | 日韩| 成人激情免费网站| 成年人午夜剧场| 在线免费精品视频| 无套内谢的新婚少妇国语播放| 久久精品夜夜夜夜夜久久| 777午夜精品电影免费看| 国产伦精品一区二区三区免费视频| 99久久亚洲精品蜜臀| 激情网站五月天| 久久综合国产精品| 国产精品白浆一区二小说| 91精品国产综合久久久久| 成人免费黄色网页| 日韩av大片在线| 午夜先锋成人动漫在线| 97视频久久久| 99久久99久久精品免费观看| 国产盗摄x88av| 欧美一卡2卡三卡4卡5免费| 欧美精品电影| 91精品国产综合久久香蕉922| 欧美午夜精品一区二区三区电影| 人妻熟女一二三区夜夜爱| 91玉足脚交白嫩脚丫在线播放| 久久婷婷综合国产| 日韩欧美美女一区二区三区| 日本中文在线观看| 成人黄色av网站| 久久精品亚洲人成影院 | 超碰国产精品一区二页| 亚洲欧美日韩精品在线| 麻豆成人免费电影| 免费成人深夜夜行网站| 制服丝袜亚洲播放| 18网站在线观看| www.久久草| 国内在线观看一区二区三区| 国内精品免费视频| 亚洲国产aⅴ天堂久久| 色网站免费观看| 欧美性做爰毛片| 亚欧洲精品视频在线观看| 男人操女人逼免费视频| www精品美女久久久tv| 国产午夜精品久久久久| 亚洲日本成人网| 欧美日韩卡一| 佐佐木明希av| 成人av免费网站| 天天爽夜夜爽人人爽| 在线视频欧美日韩精品| 宅男噜噜噜66国产精品免费| 日韩精品福利片午夜免费观看| 国产成人99久久亚洲综合精品| 1级黄色大片儿| 国产亚洲精品激情久久| 少妇高潮一区二区三区99| 日韩不卡一二区| av一区二区三区| 国产主播第一页| 久久九九国产精品怡红院| julia中文字幕一区二区99在线| 91视频最新入口| 国产精品婷婷午夜在线观看| 成人黄色免费视频| 国产91精品久| 99久久夜色精品国产亚洲96| 人妻精油按摩bd高清中文字幕| 欧美日韩黄色大片| 在线视频自拍| 国产精品白丝jk白祙| 日韩av中文字幕一区二区三区| 乱h高h女3p含苞待放| 日韩国产中文字幕| 亚州欧美在线| www.av中文字幕| 国产精品久久久久精k8| 午夜国产在线观看| 国产欧美在线观看| 一本色道久久综合| 欧美美女性生活视频| 亚洲成人久久一区| 91丨精品丨国产| av免费播放网址| 一区二区在线看| av网站大全在线观看| 国产私拍一区| 久久精品99国产精品| 国产成人精品网|