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

jQuery調(diào)用WCF服務傳遞JSON對象

開發(fā) 開發(fā)工具
本文詳細介紹了如何使用WCF去創(chuàng)建一個服務端口,從而能夠被ASP.Net頁面通過jQuery的AJAX方法訪問。這個例子就是為了說明,在沒有一個好的客戶端代理的情況下,我們是如何調(diào)用Web服務的。

下面這個示例使用了WCF去創(chuàng)建一個服務端口從而能夠被ASP.Net頁面通過jQuery的AJAX方法訪問,我們將在客戶端使用Ajax技術來 與WCF服務進行通信。這里我們僅使用jQuery去連接Web Service,而不去使用ASP.Net AJAX庫,至于為什么不使用AJAX庫中,那是因為我們在項目中已經(jīng)使用了jQuery,而它已經(jīng)能處理全部的AJAX請求和所有功能,并且,如果我們 一旦使用ASP.NET AJAX庫,我們也必須多包含一個超過80Kb的數(shù)據(jù)量(調(diào)試模式下會更大),但這也不是說ASP.NET AJAX庫不實用,事實上,如果使用了相同的類庫,我們能夠少寫很多的額外代碼,但這個例子就是為了說明,在沒有一個好的客戶端代理的情況下,我們是如何調(diào)用Web服務的。

WCF 服務:

我們先創(chuàng)建一個WebSite,然后添加一個AJAX-enabled WCF Service,從而創(chuàng)建WCF服務。(請確保你使用了正確的.Net Framework 版本,我用的是3.5)
創(chuàng)建WCF服務

在我們添加完service后,它會自動進入該service的后置代碼文件,Go ahead and browse around the file for a second.

首先我們要做的是找到"AspNetCompatibilityRequirements"并將其值置為 "Allowed":

[AspNetCompatibilityRequirements( RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed )] 
 

這個屬性的設置可將我們的服務跑在ASP.NET compatibility模式,如果我們未將該值設為"Allowed",那么就無法通過ASP.Net去訪問到該服務,這個屬性是當你添加 "AJAX-enabled WCF Service" 時自動生成的。更多祥細請參看MSDN。

現(xiàn)在再來看自動生成的后置代碼文件,我們能發(fā)現(xiàn)已經(jīng)存在了一個被標注了"OperationContract"特性的"DoWork()" 的方法,這個方法是自動生成的,我們將使用這個方法來完成下面的示例。我們再來為該方法添加一個"WebGet"的特性,并設"RequestFormat" 的值為 "Json." 我們再來為該方法加上另外的一個特性RequestFormat,WebGet 和Get動詞一樣,作用于一個UriTemplate(本文不對此作進一步討論),RequestFormat 特性可以讓我們接收JSON格式的請求。

我們的 "DoWork()" 方法如下:

  1. [OperationContract]   
  2. [WebGet( RequestFormat=WebMessageFormat.Json )]   
  3. public void DoWork()   
  4. {   
  5.     // Add your operation implementation here   
  6.     return;   

對象的模型:

我們希望通過"DoWork()" 來傳遞一個叫“Person”的對象,那先來創(chuàng)建一個Person對象寫入到當前類的頭部,其包含字段和屬性(Name, Age 和 the types of Shoes they own),這個類同時也作為所傳遞JSON的結(jié)構(gòu)。

  1. [Serializable]   
  2. [DataContract( Namespace = "http://www.dennydotnet.com/", Name = "Person" )]   
  3. public class Person   
  4. {   
  5.     private string _name = string.Empty;   
  6.     private int _age = 0;   
  7.  
  8.     [DataMember( IsRequired = true, Name = "Name" )]   
  9.     public string Name   
  10.     {   
  11.         get { return _name; }   
  12.         set { _name = value; }   
  13.     }   
  14.  
  15.     [DataMember( IsRequired = true, Name = "Age" )]   
  16.     public int Age   
  17.     {   
  18.         get { return _age; }   
  19.         set { _age = value; }   
  20.     }   
  21.  
  22.     [DataMember( IsRequired = true, Name = "Shoes" )]   
  23.     public List<String> Shoes;   
  24. }   
  25.  
  26.    

我們已經(jīng)為 "Person”類的名稱和命名空間標注上了契約,我們?nèi)孕枰獮閷傩允谟跀?shù)據(jù)成員特性,為每個屬性 設置"IsRequired"并具體指定其名稱。你只需要具體指定名字,如果它和屬性名不一樣。舉例來說吧,如果你有一個屬性叫作“Level”,但你在 數(shù)據(jù)成員特性中賦值為“Rank”,現(xiàn)在我們要回去修改我們的“DoWork()”方法,去接收Person對象作為參數(shù)。具體參下面代碼塊。

  1. [OperationContract]   
  2. [WebGet( RequestFormat=WebMessageFormat.Json )]   
  3. public void DoWork(Person p)   
  4. {   
  5.     // Add your operation implementation here   
  6.     return;   
  7. }  
  8.   

對Web.Config文件進行配置:
我們僅需對web.config文件做出很小的修改就能對服務進行訪問了。首先加入一個 serviceBehavior 用來允許Http Get請求,再添加一些調(diào)試選項幫助。代碼如下:

Below </endpointBehaviors>

  1. <serviceBehaviors>   
  2.     <behavior name="ServiceAspNetAjaxBehavior">   
  3.         <serviceMetadata httpGetEnabled="true" httpGetUrl="" />   
  4.         <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />   
  5.     </behavior>   
  6. </serviceBehaviors> 
  7.   

在<services>這里</services>之間,你的代碼如下:

  1. <service name="Service" behaviorConfiguration="ServiceAspNetAjaxBehavior">   
  2.     <endpoint address="" behaviorConfiguration="ServiceAspNetAjaxBehavior"   
  3. binding="webHttpBinding" contract="Service" />   
  4.     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />   
  5. </service>   
  6.   

注意:

  1. <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />  

允許例外可能會導致內(nèi)部應用相關信息,包括個人信息的泄露。設置為true僅用于調(diào)試目的!

你的Web.config文件修改后如下圖所示:

Webconfig文件

回到前端頁面:

現(xiàn)在我們的服務已經(jīng)被創(chuàng)建和配置了,再來關注前端頁面部分吧(確保頁面已引用jQuery.js文件),首先來創(chuàng)建一個簡單的Json對象用于向service傳遞,我們在Person類結(jié)構(gòu)的基礎上創(chuàng)建該JSON對象。

  1. var mydata = { "Name":"Denny""Age":23, "Shoes":["Nike","Osiris","Etnies"] };  

如果你對JSON還不是很熟悉,我們可以把它看作一個對象,這個小工具幫助你來查看 (JsonViewer):

JsonViewer

我們需要使用WCF和jQuery進行Ajax通信,下面的代碼創(chuàng)建了一個AJAX呼叫,在頭部設置了GET方式,和內(nèi)容類型為 application/json,將url的路徑置為WCF 服務的 svc 文件,并在其后加上/和所要執(zhí)行方法的名稱,在這里我們要調(diào)用的是DoWork()方法,data是用來傳遞參數(shù),為了讓jQuery不去自動處理我們的 數(shù)據(jù),將processData設為false,我們還加入了對success和error的處理,以更多的了解AJAX執(zhí)行完之后的處理過程。

  1. function sendAJAX(data) {   
  2.     $.ajax({   
  3.         type: "GET",   
  4.         contentType: "application/json",   
  5.         url: "Service.svc/DoWork",   
  6.         data: data,   
  7.         processData: false,   
  8.         success: function(msg){   
  9.                 alert( "Data Saved!" );   
  10.         },   
  11.         error:function(XMLHttpRequest, textStatus, errorThrown){   
  12.                 alert( "Error Occured!" );   
  13.         }   
  14.     });   
  15. }  
  16.   

然而很不幸運,這里有一個小的問題,我們必須發(fā)送真正的JSON字符串,作為參數(shù)傳遞。但還沒有簡單的方法讓JSON對象轉(zhuǎn)換為字符串,如果你試了data.toString(),得到的會是一個 "[object Object]"值。這不是我們想要的。

所以在這里我們要修改方法使得它能將JSON轉(zhuǎn)換成字符串。

  1. function json2string(strObject) {   
  2. var c, i, l, s = '', v, p;   
  3.  
  4. switch (typeof strObject) {   
  5. case 'object':   
  6. if (strObject) {   
  7. if (strObject.length && typeof strObject.length == 'number') {   
  8. for (i = 0; i < strObject.length; ++i) {   
  9.      v = json2string(strObject[i]);   
  10. if (s) {   
  11.       s += ',';   
  12.      }   
  13.      s += v;   
  14.     }   
  15. return '[' + s + ']';   
  16.    } else if (typeof strObject.toString != 'undefined') {   
  17. for (i in strObject) {   
  18.      v = strObject[i];   
  19. if (typeof v != 'undefined' && typeof v != 'function') {   
  20.       v = json2string(v);   
  21. if (s) {   
  22.        s += ',';   
  23.       }   
  24.       s += json2string(i) + ':' + v;   
  25.      }   
  26.     }   
  27. return '{' + s + '}';   
  28.    }   
  29.   }   
  30. return 'null';   
  31. case 'number':   
  32. return isFinite(strObject) ? String(strObject) : 'null';   
  33. case 'string':   
  34.   l = strObject.length;   
  35.   s = '"';   
  36. for (i = 0; i < l; i += 1) {   
  37.    c = strObject.charAt(i);   
  38. if (c >= ' ') {   
  39. if (c == '\\' || c == '"') {   
  40.      s += '\\';   
  41.     }   
  42.     s += c;   
  43.    } else {   
  44. switch (c) {   
  45. case '\b':   
  46.       s += '\\b';   
  47. break;   
  48. case '\f':   
  49.       s += '\\f';   
  50. break;   
  51. case '\n':   
  52.       s += '\\n';   
  53. break;   
  54. case '\r':   
  55.       s += '\\r';   
  56. break;   
  57. case '\t':   
  58.       s += '\\t';   
  59. break;   
  60. default:   
  61.       c = c.charCodeAt();   
  62.       s += '\\u00' + Math.floor(c / 16).toString(16) +   
  63.        (c % 16).toString(16);   
  64.     }   
  65.    }   
  66.   }   
  67. return s + '"';   
  68. case 'boolean':   
  69. return String(strObject);   
  70. default:   
  71. return 'null';   
  72. }   
  73. }   
  74.    

現(xiàn)在我們有一個方法可以將JSON對象轉(zhuǎn)成我們所需要的字符串,現(xiàn)在我們回過頭去修改我們之前定義的 "mydata" 變量,我們應當按下面去應用所寫的json2string方法。

  1. var mydata = { "Name":"Denny""Age":23, "Shoes":["Nike","Osiris","Etnies"] };   
  2. var jsonStr = "p=" + json2string(mydata);  

注意在下面我準備了"p=" 字符在我們的JSON字符串中,“p”對應于"DoWork()" 方法中的參數(shù),當我們將參數(shù)改名為"Dude" ( 例如DoWork(Person Dude) )時,我們也必須將此處替換為"Dude="

現(xiàn)在我們準備好了查詢字符串,我們參看到我們?nèi)绾握{(diào)用服務:

  1. http://www.dennydotnet.com/Service.svc/DoWork/?p={ "Name":"Denny", "Age":23, "Shoes":["Nike","Osiris","Etnies"] } 

你將接收到一個已經(jīng)為URL編碼處理過的值,如下:

  1. http://www.dennydotnet.com/Service.svc/DoWork/?p=%7b+%22Name%22%3a%22Denny%22%2c+%22Age%22%3a23%2c+%22Shoes%22%3a%5b%22Nike%22%2c%22Osiris%22%2c%22Etnies%22%5d+%7d%3b 

緊接著我們?nèi)フ{(diào)用"SendAjax()" javascript 方法,現(xiàn)在能夠調(diào)試我們的服務并驗證數(shù)據(jù)是否被傳遞到服務。如下圖

驗證數(shù)據(jù)

現(xiàn)在你僅需要在DoWork()方法里實現(xiàn)自己的邏輯。注意無論你如何怎么去做 在WCF的服務端,它已經(jīng)為你做好了。

【編輯推薦】

  1. 使用ASP.NET AJAX調(diào)用WCF服務項模板
  2. 詳解自定義托管宿主WCF解決方案開發(fā)配置過程
  3. 詳解WCF可擴展框架中的行為擴展
  4. WCF中通過Dispose有效實現(xiàn)重用
  5. WCF開發(fā)基礎
責任編輯:yangsai 來源: 網(wǎng)絡
相關推薦

2011-05-16 09:30:30

jQueryWCF

2011-04-01 10:40:53

WCFiPhone調(diào)用

2009-07-27 17:54:39

WCF服務ASP.NET

2011-07-08 20:54:12

iPhone WCF

2011-01-19 12:52:49

WCF.NETC#

2009-12-07 14:35:42

WCF異步調(diào)用

2009-11-06 09:48:40

WCF服務

2010-02-26 17:51:16

Silverlight

2010-02-26 15:24:27

WCF釋放服務對象

2009-07-23 10:51:20

jQuery調(diào)用Web返回JSON數(shù)據(jù)

2010-03-02 13:54:43

WCF控制服務對象釋放

2010-07-06 10:07:10

jQueryJSON

2009-11-05 17:00:34

WCF有序傳遞

2009-12-21 15:12:40

WCF操作Stream

2009-12-21 10:19:05

Silverlight

2009-04-07 16:21:35

ASP.NETAJAXWCF

2010-02-25 14:53:44

WCF調(diào)用服務異常

2010-03-01 14:01:50

WCF服務異步調(diào)用

2009-12-22 15:14:33

WCF調(diào)用

2009-11-06 13:33:56

WCF Dispatc
點贊
收藏

51CTO技術棧公眾號

男人j进女人j| 九九热r在线视频精品| www.浪潮av.com| 国产福利第一视频在线播放| 青青国产91久久久久久| 久久久精品在线| 日本一区二区在线观看视频| 久九九久频精品短视频| 亚洲欧洲日本在线| 国产伦精品一区二区三区照片91| www.久久精品视频| 91成人国产| 日韩美女av在线| 亚洲五月激情网| 惠美惠精品网| 亚洲精品成人少妇| 日本午夜精品一区二区三区| 99久久精品无免国产免费| 国产亚洲精品v| 日韩在线观看免费高清完整版| 最新日本中文字幕| 国产精品无码久久久久| 亚洲成人777| 亚洲一区美女| 欧美69xxxxx| 国产v综合v亚洲欧| 国产在线精品成人一区二区三区| 日本一级一片免费视频| 一个色综合网| 在线看日韩av| 野花社区视频在线观看| 亚洲图片小说区| 精品福利在线观看| 热久久最新网址| 成年人在线观看| 成人激情校园春色| 5g影院天天爽成人免费下载| 欧美brazzers| 午夜亚洲伦理| 韩国一区二区电影| 一级黄色录像视频| 午夜激情久久| 丝袜情趣国产精品| 人妻熟女aⅴ一区二区三区汇编| 精品视频在线播放一区二区三区 | 天天爽天天爽天天爽| 欧美激情15p| 亚洲第一精品电影| 久久发布国产伦子伦精品| 午夜精品久久久久久毛片| 日韩欧美一区二区在线| 波多野结衣家庭教师在线| xxx性欧美| 亚洲国产精品综合小说图片区| 亚洲欧美日韩不卡| 欧美黄色激情| 国产精品福利av| 亚洲精品免费在线看| 国产高清视频在线播放| 国产欧美一区二区精品仙草咪| 国内不卡一区二区三区| 色婷婷在线视频| 国产99一区视频免费| yellow视频在线观看一区二区 | 中文字幕第69页| 欧美最新另类人妖| 在线观看欧美www| 中文天堂资源在线| 色喇叭免费久久综合| 日韩一区二区欧美| 婷婷久久综合网| 欧美一区久久| 欧美激情一区二区三区高清视频 | 自拍偷拍欧美专区| 欧美区二区三区| 日本一区二区不卡在线| 一区二区三区国产在线| 全亚洲最色的网站在线观看| 无码人妻精品一区二区三区蜜桃91 | 久久久久无码国产精品| 国产精品v欧美精品v日本精品动漫| 色综合久久中文字幕综合网小说| 久久免费在线观看视频| 日韩一级大片| 国产精品久久久久久久app| 日韩有码视频在线| 极品白嫩的小少妇| 美日韩黄色大片| 亚洲一区999| 中文字幕无码日韩专区免费 | 婷婷成人av| 欧美一区二区视频观看视频| 日本精品一二三区| 国产不卡av一区二区| www国产亚洲精品久久网站| 青青草国产在线观看| 国产亚洲一级| 国产精品永久在线| 亚洲黄色在线观看视频| 久久久另类综合| 91香蕉视频网址| 激情国产在线| 欧美揉bbbbb揉bbbbb| 亚洲自拍第三页| 欧美日韩一区二区三区四区不卡 | 91一区二区三区在线| 午夜精品在线视频一区| 天堂一区在线观看| 国产成人澳门| 日韩在线中文视频| 女人十八岁毛片| 激情另类小说区图片区视频区| 国新精品乱码一区二区三区18| seseavlu视频在线| 亚洲一区二区三区四区五区黄 | 免费网站看av| 日韩av在线播放中文字幕| 91免费版黄色| 97人人在线| 欧美午夜女人视频在线| 99精品视频国产| 亚洲精品白浆高清| 欧美精品电影在线| 国产毛片在线视频| 国产欧美精品一区aⅴ影院| 福利在线一区二区| 自拍偷拍亚洲| 一区二区三区亚洲| 神马久久久久久久 | 色综合天天综合网国产成人综合天 | аⅴ天堂中文在线网| 亚洲国产1区| 国产免费一区二区三区香蕉精| 五月激情六月婷婷| 一区二区三区欧美亚洲| 亚洲免费999| 精品美女视频| 欧美专区在线视频| 日本xxxxwww| 亚洲自拍偷拍欧美| 成年人性生活视频| 久久久久电影| 国产精品自在线| 成人亚洲性情网站www在线观看| 精品久久久一区| 成人欧美精品一区二区| 国产精品av一区二区| 亚洲自拍小视频| 国产二区三区在线| 在线播放视频一区| 午夜国产福利视频| 久久精品av麻豆的观看方式| 色狠狠久久av五月综合| 自拍偷自拍亚洲精品被多人伦好爽| 亚洲黄色片网站| 99久在线精品99re8热| 成人妖精视频yjsp地址| 欧美中日韩在线| 国语一区二区三区| 91精品国产沙发| 天天干,夜夜爽| 精品色蜜蜜精品视频在线观看| 五十路六十路七十路熟婆| 亚洲毛片一区| 蜜桃欧美视频| 亚洲www啪成人一区二区| 国产亚洲精品高潮| 中文字幕在线网站| 18欧美乱大交hd1984| 91视频福利网| 国产尤物精品| 蜜桃导航-精品导航| 成人a在线观看高清电影| 综合网中文字幕| 97人妻精品一区二区三区动漫| 亚洲色图视频免费播放| 少妇极品熟妇人妻无码| 国产日韩精品视频一区二区三区| 欧美大香线蕉线伊人久久| 亚洲伦乱视频| 久久夜精品va视频免费观看| 亚洲免费视频网| 精品国产精品三级精品av网址| www在线观看免费视频| 久久精品国产亚洲一区二区三区 | av网站免费在线播放| 视频一区欧美日韩| 日韩最新中文字幕| 狠狠一区二区三区| 国产精品亚洲第一区| 性爱视频在线播放| 亚洲免费福利视频| 国产乱淫a∨片免费视频| 亚洲国产一区二区视频| 3d动漫精品啪啪一区二区下载| 美女在线视频一区| 精品一二三四五区| 不卡日本视频| 国产精品久久波多野结衣| 欧美无毛视频| 九九精品在线播放| 成人在线二区| 亚洲激情成人网| 888奇米影视| 欧美日韩综合视频网址| 亚洲av鲁丝一区二区三区| 91影院在线观看| 日韩va在线观看| 亚洲女人av| 400部精品国偷自产在线观看| 呻吟揉丰满对白91乃国产区| 欧美第一在线视频| 国产成人拍精品视频午夜网站| av激情在线| 国产一区二区三区丝袜| 黑人精品一区二区| 欧美高清一级片在线| 亚洲 欧美 日韩 综合| 亚洲天堂成人网| 国产真实乱人偷精品人妻| 国产成人自拍网| 色一情一区二区| 久久一本综合频道| 大陆av在线播放| 五月天综合网站| 色综合666| 欧美日韩一区二区三区不卡视频| 亚洲伊人久久综合| 欧美黄色网络| 国产v综合ⅴ日韩v欧美大片| 黄污视频在线观看| 久久久精品久久久久| 可以在线观看的av网站| 亚洲成人免费在线视频| 日韩av综合在线| 一区二区三区加勒比av| 爱爱视频免费在线观看| 中文字幕日韩一区| 国产又黄又粗视频| 国产三级久久久| 9.1成人看片| 成人av网站免费观看| 国产精品一级无码| 国产麻豆9l精品三级站| 久久6免费视频| 久久精品久久综合| 不卡中文字幕在线观看| 美洲天堂一区二卡三卡四卡视频| 九九视频精品在线观看| 久久av最新网址| 日本在线视频www| 久久亚洲精选| 精品久久久久久中文字幕2017| 久久精品伊人| 免费在线观看的毛片| 三级影片在线观看欧美日韩一区二区| 各处沟厕大尺度偷拍女厕嘘嘘| 亚洲黄色精品| 国内性生活视频| 亚洲综合另类| 久久久久国产精品熟女影院| 日本一区中文字幕| 91精品999| 国产激情91久久精品导航| 一区二区在线免费观看视频| 国产精品一区二区在线看| 国产亚洲精品成人a| www.在线欧美| 91网站免费视频| 国产精品欧美一级免费| 极品久久久久久| 亚洲在线观看免费| 日韩一区二区视频在线| 在线视频综合导航| 国产一区二区在线视频聊天| 欧美一二三四区在线| 丰满熟妇乱又伦| 亚洲精品色婷婷福利天堂| 草草影院在线观看| 久久中文字幕在线| 国产在线美女| 日韩免费观看网站| 国产精品一区二区美女视频免费看 | 日韩av影片| 国产精品极品美女粉嫩高清在线| 在线不卡一区| 精品产品国产在线不卡| 精品久久久久久久| 国产1区2区3区中文字幕| 亚洲每日在线| 亚洲欧洲日本精品| 丁香天五香天堂综合| 精品人妻一区二区免费视频| 国产亚洲综合色| 极品久久久久久| 色综合天天做天天爱| 国产女人18毛片水真多| 亚洲精品乱码久久久久久金桔影视| www视频在线观看免费| 欧美日韩成人在线观看| 偷拍中文亚洲欧美动漫| 91丝袜脚交足在线播放| 国产一区不卡| 欧美成人精品免费| 另类综合日韩欧美亚洲| 中文字幕一区三区久久女搜查官| 中文字幕免费观看一区| 国产无码精品视频| 精品视频在线视频| 午夜激情小视频| 久久成人这里只有精品| 欧美aaa视频| 九色综合婷婷综合| 国产精品hd| av在线网址导航| 久久久久久久久久久电影| 黄色一级视频免费| 欧美日韩午夜在线视频| 青青草手机在线| 久久噜噜噜精品国产亚洲综合 | 成人精品一二区| 青青草综合网| 国产中文字幕免费观看| 国产高清成人在线| 欧美做爰啪啪xxxⅹ性| 欧美中文字幕一区二区三区| 色哟哟中文字幕| 欧美大码xxxx| 国产精品成人3p一区二区三区| 日产精品久久久一区二区| 亚洲精品1234| 伊人影院在线观看视频| 亚洲视频一区二区在线观看| 中文字幕人妻色偷偷久久| 精品无码久久久久久国产| 青草视频在线免费直播| 亚洲在线免费看| 五月天久久网站| 五月天中文字幕在线| 欧美国产激情一区二区三区蜜月| 无码人妻一区二区三区免费 | av在线中文| 国产97在线|亚洲| 外国成人在线视频| av动漫在线看| 久久婷婷久久一区二区三区| 欧美三级韩国三级日本三斤在线观看 | 久久精品成人欧美大片古装| 影音成人av| 亚欧洲精品在线视频免费观看| 日一区二区三区| 亚洲久久久久久久| 91官网在线观看| 成年人免费在线视频| 国产精品日日摸夜夜添夜夜av| 国产一区二区三区四区| 午夜视频在线瓜伦| 国产精品天天看| 国产精品久久久久久久久久久久久久久久 | 国产精品久久久久久久久久99 | 精品网站999www| 亚洲欧洲高清| 天堂资源在线亚洲资源| 日韩高清不卡一区| 亚洲少妇xxx| 日韩精品在线一区二区| 欧美xxxx做受欧美88bbw| 韩国成人动漫在线观看| 乱人伦精品视频在线观看| 亚洲色图 激情小说| 91精品国产日韩91久久久久久| 天天干在线视频论坛| 国产日韩亚洲精品| 久久看片网站| 中文字幕乱码av| 欧美成人精品高清在线播放| 天堂av中文在线观看| 色女人综合av| 国产盗摄女厕一区二区三区| 国产手机在线视频| 最近2019年中文视频免费在线观看 | 男女污视频在线观看| 国产精品稀缺呦系列在线| 欧美一区二区三区久久精品| 中文字幕免费高清视频| 色狠狠一区二区三区香蕉| 哥也色在线视频| 九九九久久久| 久久精品av麻豆的观看方式| 欧美日韩激情在线观看| 精品亚洲精品福利线在观看| 欧美极品在线| 国产av天堂无码一区二区三区| 中文字幕成人av| 亚洲成人第一区| 国产精品福利网| 国产一区欧美| 国产精品视频在| 日韩美女av在线| 亚洲国产欧美国产第一区|