客戶端跨域請求網(wǎng)絡(luò)資源的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種客戶端跨域請求網(wǎng)絡(luò)資源的方法和裝置。其中,該方法包括:第一服務(wù)器接收客戶端發(fā)送的異步網(wǎng)頁請求,其中,異步網(wǎng)頁請求中攜帶有第二服務(wù)器的網(wǎng)絡(luò)資源地址,其中,第一服務(wù)器與客戶端屬于第一域;獲取異步網(wǎng)頁請求中的服務(wù)器標(biāo)志位;若服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第二域,則第一服務(wù)器提取網(wǎng)絡(luò)資源地址生成網(wǎng)絡(luò)資源請求,其中,第一域與第二域為不同的域;將網(wǎng)絡(luò)資源請求轉(zhuǎn)發(fā)至第二服務(wù)器;將接收到的第二服務(wù)器的響應(yīng)數(shù)據(jù)發(fā)送至客戶端,其中,響應(yīng)數(shù)據(jù)中攜帶有網(wǎng)絡(luò)資源地址對應(yīng)的網(wǎng)絡(luò)資源。通過本發(fā)明,解決了現(xiàn)有技術(shù)中跨域請求網(wǎng)絡(luò)資源操作繁瑣且效率低的問題,達到了客戶端對跨域網(wǎng)絡(luò)資源的快速且高效的訪問的效果。
【專利說明】客戶端跨域請求網(wǎng)絡(luò)資源的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種客戶端跨域請求網(wǎng)絡(luò)資源的方法和
>J-U ρ?α裝直。
【背景技術(shù)】
[0002]目前,第二代互聯(lián)網(wǎng)Web2.0的到來,使得AJAX技術(shù)得到廣泛的運用,而AJAX技術(shù)的核心是JavaScript對象XmlHttpRequest,它是一種支持異步請求的技術(shù),用戶可以使用JavaScript向服務(wù)器提出請求并得到響應(yīng),同時不會影響其他用戶的使用。但是在實際運用中,AJAX技術(shù)是通過XMLHttpRequest對象來進行數(shù)據(jù)的交互的,當(dāng)用戶需要訪問其他域的頁面內(nèi)容時,瀏覽器出于安全性的考慮,不允許JS代碼進行跨域操作。針對上述問題,現(xiàn)行的解決方案有如下五種:
[0003]方案一 JSONP方式:利用HTML的script標(biāo)簽加載并執(zhí)行其他域JavaScript文件。站點B把要提供的數(shù)據(jù)作為參數(shù)傳給一個站點A定義的全局函數(shù),站點A可以通過引用這個包含上述參數(shù)的JS文件跨域獲取數(shù)據(jù)。這個方案的缺點是:不支持POST,同時需要在目標(biāo)服務(wù)器上增加額外文件。
[0004]方案二:利用IFRAME的window, name的方式:通過在IFRAME中加載一個資源,在目標(biāo)頁面設(shè)置其name屬性,而此name屬性值可被其他域獲取到,以訪問Web服務(wù)發(fā)送的信息。這個方案的缺點是:它要求服務(wù)器端返回一段HTML代碼,同時必須有JS代碼指定window, name =”返回的值”,且該方案只支持Get請求。
[0005]方案三:利用HTML5的postMessage的方式:通過postMessage O方法允許來自不同源的腳本采用異步方式進行有限的通信,以此來實現(xiàn)跨文本檔、多窗口、跨域消息傳遞。這個方案的缺點是:該方案具有局限性,只能應(yīng)用于HTML5中。
[0006]方案四:利用IFRAME與locat1n, hash相結(jié)合的方式:其原理是改變locat1n,hash中的hash值來進行數(shù)據(jù)傳遞。具體是修改在URL中的locat1n, hash的hash值,而改變hash值并不會導(dǎo)致頁面刷新,所以可以通過hash值來進行數(shù)據(jù)傳遞。這個方案的缺點是:能夠傳遞的數(shù)據(jù)容量和類型都有限,且傳遞的數(shù)據(jù)直接暴露在了 URL中,使得數(shù)據(jù)的傳輸安全會面臨問題。
[0007]方案五:利用Flash跨域的方式:其原理是利用flash的URLLoader,具體是只要站點B的跨域策略文件中包含了站點A, A站點就可以獲取B站點的數(shù)據(jù)。這個方案的缺點是:限制條件過多,在使用該方式時需要依賴Flash,且需要在站點服務(wù)器目錄下放置crossdomain, xml 文件。
[0008]由上述現(xiàn)行方案可知,當(dāng)前處理跨域請求網(wǎng)絡(luò)資源的方案存在限制條件較多、操作繁瑣、處理效率低以及局限性較大的問題。
[0009]針對現(xiàn)有技術(shù)中跨域請求網(wǎng)絡(luò)資源操作繁瑣且效率低的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的主要目的在于提供一種客戶端跨域請求網(wǎng)絡(luò)資源的方法和裝置,以解決現(xiàn)有技術(shù)中跨域請求網(wǎng)絡(luò)資源操作繁瑣且效率低的問題。
[0011]為了實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的一個方面,提供了一種客戶端跨域請求網(wǎng)絡(luò)資源的方法。
[0012]根據(jù)本發(fā)明的客戶端跨域請求網(wǎng)絡(luò)資源的方法包括:第一服務(wù)器接收客戶端發(fā)送的異步網(wǎng)頁請求,其中,異步網(wǎng)頁請求中攜帶有請求訪問的網(wǎng)絡(luò)資源地址,其中,第一服務(wù)器與客戶端屬于第一域;獲取異步網(wǎng)頁請求中的服務(wù)器標(biāo)志位;若服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第二域,則第一服務(wù)器提取網(wǎng)絡(luò)資源地址生成網(wǎng)絡(luò)資源請求,其中,第一域與第二域為不同的域;將網(wǎng)絡(luò)資源請求轉(zhuǎn)發(fā)至第二服務(wù)器;將接收到的第二服務(wù)器的響應(yīng)數(shù)據(jù)發(fā)送至客戶端,其中,響應(yīng)數(shù)據(jù)中攜帶有網(wǎng)絡(luò)資源地址對應(yīng)的網(wǎng)絡(luò)資源。
[0013]進一步地,在獲取異步網(wǎng)頁請求中的服務(wù)器標(biāo)志位之后,方法包括:判斷服務(wù)器標(biāo)志位是否為預(yù)設(shè)值;若服務(wù)器標(biāo)志位為預(yù)設(shè)值,則確定服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第二域;若服務(wù)器標(biāo)志位不為預(yù)設(shè)值,則確定服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第一域。
[0014]進一步地,在確定服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第一域之后,方法還包括:第一服務(wù)器從異步網(wǎng)頁請求中解析出第二服務(wù)器的IP地址;將異步網(wǎng)頁請求轉(zhuǎn)發(fā)至具有IP地址的第二服務(wù)器。
[0015]進一步地,將接收到的第二服務(wù)器的響應(yīng)數(shù)據(jù)發(fā)送至客戶端包括:在接收到第二服務(wù)器的響應(yīng)數(shù)據(jù)之后,將響應(yīng)數(shù)據(jù)解析為預(yù)設(shè)格式的解析數(shù)據(jù);將解析數(shù)據(jù)發(fā)送至客戶端。
[0016]進一步地,在第一服務(wù)器接收客戶端發(fā)送的異步網(wǎng)頁請求之前,方法還包括:客戶端使用服務(wù)器標(biāo)志位和網(wǎng)絡(luò)資源地址構(gòu)建異步網(wǎng)頁請求;將異步網(wǎng)頁請求發(fā)送至第一服務(wù)器。
[0017]為了實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的另一方面,提供了一種客戶端跨域請求網(wǎng)絡(luò)資源的裝置。
[0018]根據(jù)本發(fā)明的客戶端跨域請求網(wǎng)絡(luò)資源的裝置包括:接收模塊,用于第一服務(wù)器接收客戶端發(fā)送的異步網(wǎng)頁請求,其中,異步網(wǎng)頁請求中攜帶有請求訪問的網(wǎng)絡(luò)資源地址,其中,第一服務(wù)器與客戶端屬于第一域;獲取模塊,用于獲取異步網(wǎng)頁請求中的服務(wù)器標(biāo)志位;生成模塊,用于若服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第二域,則第一服務(wù)器提取網(wǎng)絡(luò)資源地址生成網(wǎng)絡(luò)資源請求,其中,第一域與第二域為不同的域;第一轉(zhuǎn)發(fā)模塊,用于將網(wǎng)絡(luò)資源請求轉(zhuǎn)發(fā)至第二服務(wù)器;第一發(fā)送模塊,用于將接收到的第二服務(wù)器的響應(yīng)數(shù)據(jù)發(fā)送至客戶端,其中,響應(yīng)數(shù)據(jù)中攜帶有網(wǎng)絡(luò)資源地址對應(yīng)的網(wǎng)絡(luò)資源。
[0019]進一步地,裝置包括:第一判斷模塊,用于在獲取異步網(wǎng)頁請求中的服務(wù)器標(biāo)志位之后,判斷服務(wù)器標(biāo)志位是否為預(yù)設(shè)值;第一確定模塊,用于若服務(wù)器標(biāo)志位為預(yù)設(shè)值,則確定服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第二域;第二確定模塊,用于若服務(wù)器標(biāo)志位不為預(yù)設(shè)值,則確定服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第一域。
[0020]進一步地,裝置還包括:解析模塊,用于在確定服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第一域之后,第一服務(wù)器從異步網(wǎng)頁請求中解析出第二服務(wù)器的IP地址;第二轉(zhuǎn)發(fā)模塊,用于將異步網(wǎng)頁請求轉(zhuǎn)發(fā)至具有IP地址的第二服務(wù)器。
[0021]進一步地,第一發(fā)送模塊包括:解析子模塊,用于在接收到第二服務(wù)器的響應(yīng)數(shù)據(jù)之后,將響應(yīng)數(shù)據(jù)解析為預(yù)設(shè)格式的解析數(shù)據(jù);第一發(fā)送子模塊,用于將解析數(shù)據(jù)發(fā)送至客戶端。
[0022]進一步地,裝置還包括:構(gòu)建模塊,用于在第一服務(wù)器接收客戶端發(fā)送的異步網(wǎng)頁請求之前,客戶端使用服務(wù)器標(biāo)志位和網(wǎng)絡(luò)資源地址構(gòu)建異步網(wǎng)頁請求;第二發(fā)送模塊,用于將異步網(wǎng)頁請求發(fā)送至第一服務(wù)器。
[0023]采用本發(fā)明,當(dāng)?shù)谝环?wù)器接收到客戶端發(fā)送的異步網(wǎng)頁請求時,根據(jù)該請求中包含的服務(wù)器標(biāo)志位判斷請求訪問的網(wǎng)絡(luò)資源在第一域或者第二域,若服務(wù)器標(biāo)志位指示請求的網(wǎng)絡(luò)資源在第二域,則由第一服務(wù)器代理將該異步網(wǎng)頁請求轉(zhuǎn)發(fā)至第二服務(wù)器,在第二服務(wù)器下發(fā)該請求的響應(yīng)數(shù)據(jù)至第一服務(wù)器之后,由第一服務(wù)器將響應(yīng)數(shù)據(jù)下發(fā)至客戶端。采用本發(fā)明,解決了現(xiàn)有技術(shù)中跨域請求網(wǎng)絡(luò)資源操作繁瑣且效率低的問題,從而達到了客戶端對跨域網(wǎng)絡(luò)資源的快速且高效的訪問的效果。
【專利附圖】
【附圖說明】
[0024]構(gòu)成本申請的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0025]圖1是根據(jù)本發(fā)明實施例的客戶端跨域請求網(wǎng)絡(luò)資源的方法的流程圖;
[0026]圖2是根據(jù)本發(fā)明實施例的一種可選的客戶端跨域請求網(wǎng)絡(luò)資源的方法的示意圖;以及
[0027]圖3是根據(jù)本發(fā)明實施例的客戶端跨域請求網(wǎng)絡(luò)資源的裝置的示意圖。
【具體實施方式】
[0028]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。
[0029]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護的范圍。
[0030]需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0031]首先,在對本發(fā)明實施例進行描述的過程中出現(xiàn)的部分名詞或術(shù)語適用于如下解釋:
[0032]Web2.0:Web2.0是相對Webl.0的新的時代。指的是一個利用Web的平臺,由用戶主導(dǎo)而生成的內(nèi)容互聯(lián)網(wǎng)產(chǎn)品模式,為了區(qū)別傳統(tǒng)由網(wǎng)站雇員主導(dǎo)生成的內(nèi)容而定義為第二代互聯(lián)網(wǎng),即web2.0。
[0033]JavaScript:一種直譯式腳本語言,是一種動態(tài)類型、弱類型、基于原型的語言,內(nèi)置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用于客戶端的腳本語言,最早是在HTML (標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用)網(wǎng)頁上使用,用來給HTML網(wǎng)頁增加動態(tài)功能。
[0034]JS文件:用腳本語言JavaScript編寫的腳本文件。
[0035]JS代碼:使用腳本語言JavaScript編寫的腳本文件的代碼。
[0036]AJAX:英文全稱是Asynchronous JavaScript And XML,是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。傳統(tǒng)的網(wǎng)頁(不使用AJAX技術(shù))如果需要更新內(nèi)容,必須重載整個網(wǎng)頁面。使用AJAX技術(shù)時,通過在后臺與服務(wù)器進行少量數(shù)據(jù)交換,AJAX可以使網(wǎng)頁實現(xiàn)異步更新,這意味著可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進行更新。
[0037]URL:英文全稱是Uniform Resource Loader,中文名稱是統(tǒng)一資源定位符。是對可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的標(biāo)示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址。
[0038]HTML:英文全稱是HyperText Mark-up Language,中文名稱是超文本標(biāo)記語言或超文本鏈接標(biāo)示語言。HTML是一種制作萬維網(wǎng)頁面的標(biāo)準(zhǔn)語言,是萬維網(wǎng)瀏覽器使用的一種語言,它消除了不同計算機之間信息交流的障礙。
[0039]JSONP:是JSON的一種“使用模式”,可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問的問題。
[0040]IFRAME:是HTML標(biāo)簽,作用于文檔中的文檔,或者浮動的框架(FRAME)。
[0041]本發(fā)明實施例提供了一種客戶端跨域請求網(wǎng)絡(luò)資源的方法。圖1是根據(jù)本發(fā)明實施例的客戶端跨域請求網(wǎng)絡(luò)資源的方法的流程圖。如圖1所示,該方法可以包括步驟如下:
[0042]步驟S102,第一服務(wù)器接收客戶端發(fā)送的異步網(wǎng)頁請求,其中,異步網(wǎng)頁請求中攜帶有請求訪問的網(wǎng)絡(luò)資源地址,其中,第一服務(wù)器與客戶端屬于第一域。
[0043]步驟S104,獲取異步網(wǎng)頁請求中的服務(wù)器標(biāo)志位。
[0044]步驟S106,若服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第二域,則第一服務(wù)器提取網(wǎng)絡(luò)資源地址生成網(wǎng)絡(luò)資源請求,其中,第一域與第二域為不同的域。
[0045]步驟S108,將網(wǎng)絡(luò)資源請求轉(zhuǎn)發(fā)至第二服務(wù)器。
[0046]步驟S110,將接收到的第二服務(wù)器的響應(yīng)數(shù)據(jù)發(fā)送至客戶端,其中,響應(yīng)數(shù)據(jù)中攜帶有網(wǎng)絡(luò)資源地址對應(yīng)的網(wǎng)絡(luò)資源。
[0047]采用本發(fā)明,當(dāng)?shù)谝环?wù)器接收到客戶端發(fā)送的異步網(wǎng)頁請求時,根據(jù)該請求中包含的服務(wù)器標(biāo)志位判斷請求訪問的網(wǎng)絡(luò)資源在第一域或者第二域,若服務(wù)器標(biāo)志位指示請求的網(wǎng)絡(luò)資源在第二域,則由第一服務(wù)器代理將該異步網(wǎng)頁請求轉(zhuǎn)發(fā)至第二服務(wù)器,在第二服務(wù)器下發(fā)該請求的響應(yīng)數(shù)據(jù)至第一服務(wù)器之后,由第一服務(wù)器將響應(yīng)數(shù)據(jù)下發(fā)至客戶端。采用本發(fā)明,解決了現(xiàn)有技術(shù)中跨域請求網(wǎng)絡(luò)資源操作繁瑣且效率低的問題,從而達到了客戶端對跨域網(wǎng)絡(luò)資源的快速且高效的訪問的效果。
[0048]通過上述實施例,通過在本域(即第一域)的服務(wù)端(即上述的第一服務(wù)器)代理的方式來完成跨域請求,從而可以避免客戶端方式的各種條件限制。
[0049]在本發(fā)明的上述實施例中,在第一服務(wù)器接收客戶端發(fā)送的異步網(wǎng)頁請求之前,方法還可以包括:客戶端使用服務(wù)器標(biāo)志位和網(wǎng)絡(luò)資源地址構(gòu)建異步網(wǎng)頁請求;將異步網(wǎng)頁請求發(fā)送至第一服務(wù)器。
[0050]可選地,該實施例中第一域的服務(wù)器標(biāo)志位為0,第二域的服務(wù)器標(biāo)志位為I。
[0051]在上述實施例中,若第一服務(wù)器接收到的異步網(wǎng)頁請求的服務(wù)器標(biāo)志位為1,則判斷出該請求的網(wǎng)絡(luò)資源在第二域。
[0052]下面結(jié)合圖2詳述上述實施例,圖2是根據(jù)本發(fā)明實施例的一種客戶端跨域請求網(wǎng)絡(luò)資源的方法的示意圖。如圖2所示:
[0053]步驟S202,客戶端60向第一服務(wù)器70發(fā)送異步網(wǎng)頁請求。具體地,如果該請求請求的是第二域的網(wǎng)絡(luò)資源,如,WWW.baidu.com,則在該異步網(wǎng)頁請求中設(shè)置網(wǎng)絡(luò)資源的URL地址(即統(tǒng)一資源定位符,也即上述的網(wǎng)絡(luò)資源地址),并設(shè)置該請求的服務(wù)器標(biāo)志位為1,然后將生成的該異步網(wǎng)頁請求發(fā)送到第一服務(wù)器。其中,第二域的網(wǎng)絡(luò)資源可以是第三方服務(wù)的網(wǎng)絡(luò)資源,第一服務(wù)器可以是代理服務(wù)器。
[0054]可選地,異步網(wǎng)頁請求可以為Ajax請求(即Asynchronous Javascript And XML異步Javascript和XML),即一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。
[0055]XML即標(biāo)準(zhǔn)通用標(biāo)記語言的子集。
[0056]在本發(fā)明的上述實施例中,通過在異步網(wǎng)頁請求中添加服務(wù)器標(biāo)志位,可以使第一服務(wù)器快速判斷出該請求的目標(biāo)服務(wù)器,從而對該請求進行快速的處理,這樣客戶端對跨域網(wǎng)絡(luò)資源的請求就能得到快速的響應(yīng)。
[0057]在本發(fā)明的上述實施例中,在獲取異步網(wǎng)頁請求中的服務(wù)器標(biāo)志位之后,方法還可以包括:判斷服務(wù)器標(biāo)志位是否為預(yù)設(shè)值;若服務(wù)器標(biāo)志位為預(yù)設(shè)值,則確定服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第二域;若服務(wù)器標(biāo)志位不為預(yù)設(shè)值,則確定服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第一域。
[0058]在該實施例中,預(yù)設(shè)值即為1,將與客戶端不同域的服務(wù)器標(biāo)志位可以置為1,則服務(wù)器標(biāo)志位為1,則確定該第二服務(wù)器屬于第二域;否則,確定第二服務(wù)器屬于第一域。
[0059]在本發(fā)明的上述實施例中,在確定服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第一域之后,方法還可以包括:第一服務(wù)器從異步網(wǎng)頁請求中解析出第二服務(wù)器的IP地址;將異步網(wǎng)頁請求轉(zhuǎn)發(fā)至具有IP地址的第二服務(wù)器。
[0060]下面結(jié)合圖2中步驟S204詳述本實施例:
[0061]步驟S204,第一服務(wù)器端截獲客戶端所發(fā)送的異步網(wǎng)頁請求之后,根據(jù)該請求中的服務(wù)器標(biāo)志位來判斷請求所訪問的網(wǎng)絡(luò)資源是否屬于第二域,如果服務(wù)器標(biāo)志位為1,則判斷出該請求所對應(yīng)的第二服務(wù)器(即目標(biāo)服務(wù)器)屬于第二域,則提取網(wǎng)絡(luò)資源的URL,生成網(wǎng)絡(luò)資源請求,然后將該網(wǎng)絡(luò)資源請求轉(zhuǎn)發(fā)給該URL對應(yīng)的第二服務(wù)器(即目標(biāo)服務(wù)器)。
[0062]可選地,第一服務(wù)器攔截異步網(wǎng)頁請求之后,若該請求訪問的第二服務(wù)器與客戶端位于同一域,則可以對異步網(wǎng)頁請求進行解析得到第二服務(wù)器的IP地址,按照IP地址轉(zhuǎn)發(fā)至同一域的第二服務(wù)器。
[0063]在本發(fā)明的上述實施例中,經(jīng)過步驟S204,能夠通過第一服務(wù)器判斷出客戶端的請求是否為對第二域網(wǎng)絡(luò)資源的請求,若第二服務(wù)器屬于第二域,則提取出請求中的網(wǎng)絡(luò)資源地址,這樣就可以通過第一服務(wù)器代理訪問目標(biāo)的網(wǎng)絡(luò)資源,避免了直接使用客戶端對第二域網(wǎng)絡(luò)資源進行請求時的繁瑣操作,使客戶端對跨域網(wǎng)絡(luò)資源的請求得到快速的響應(yīng)。
[0064]在本發(fā)明的上述實施例中,步驟SllO(如圖1所示),將接收到的第二服務(wù)器的響應(yīng)數(shù)據(jù)發(fā)送至客戶端可以包括:在接收到第二服務(wù)器的響應(yīng)數(shù)據(jù)之后,將響應(yīng)數(shù)據(jù)解析為預(yù)設(shè)格式的解析數(shù)據(jù);將解析數(shù)據(jù)發(fā)送至客戶端。
[0065]如圖2所示,可以通過步驟S206實現(xiàn)上述實施例:
[0066]步驟S206,第二服務(wù)器返回網(wǎng)絡(luò)資源請求的響應(yīng)數(shù)據(jù)至第一服務(wù)器。
[0067]具體地,第二服務(wù)器根據(jù)第一服務(wù)器轉(zhuǎn)發(fā)的異步網(wǎng)頁請求中的網(wǎng)絡(luò)資源地址對目標(biāo)的網(wǎng)絡(luò)資源進行訪問,然后將獲取的響應(yīng)數(shù)據(jù)下發(fā)至第一服務(wù)器,其中第二服務(wù)器可以是第三方WEB服務(wù)器。
[0068]步驟S208,第一服務(wù)器將響應(yīng)數(shù)據(jù)進行解析后下發(fā)到客戶端。
[0069]具體地,目標(biāo)服務(wù)器(即第二服務(wù)器)返回響應(yīng)數(shù)據(jù),本地代理服務(wù)器(即第一服務(wù)器)接受響應(yīng)數(shù)據(jù)后,本地代理服務(wù)器可以對響應(yīng)數(shù)據(jù)進行解析處理,得到預(yù)設(shè)格式的解析數(shù)據(jù)(如,文本格式),將解析數(shù)據(jù)發(fā)送到客戶端。
[0070]根據(jù)本發(fā)明的上述實施例,對于客戶端對第二域的網(wǎng)絡(luò)資源的請求,可以轉(zhuǎn)換為第一服務(wù)器對第二域的網(wǎng)絡(luò)資源的請求,然后由第一服務(wù)器對接收到的第二服務(wù)器的響應(yīng)數(shù)據(jù)之后下發(fā)至客戶端,這樣就避免了直接使用客戶端對第二域網(wǎng)絡(luò)資源進行請求時的繁瑣操作,使得客戶端對第二域的網(wǎng)絡(luò)資源的請求得到快速的響應(yīng)。
[0071]通過本發(fā)明實施例,只需要讓服務(wù)器端(如與客戶端屬于同一域的服務(wù)器)構(gòu)造請求代理,通過這個代理來訪問其他域名下的資源,然后在瀏覽器端獲取服務(wù)器端跨域訪問的結(jié)果,既可以解決Post,Get的限制,同時也能夠解決所有前端的跨域訪問限制。前端開發(fā)人員只要向代理服務(wù)器傳遞請求的跨域資源,就能實現(xiàn)跨域請求,相對其他前端手段,開發(fā)難度大大降低。
[0072]本發(fā)明實施例還提供了一種客戶端跨域請求網(wǎng)絡(luò)資源的裝置。如圖3所示,該裝置可以包括如下模塊:接收模塊10、獲取模塊20、生成模塊30、第一轉(zhuǎn)發(fā)模塊40以及第一發(fā)送模塊50。
[0073]其中,接收模塊,用于第一服務(wù)器接收客戶端發(fā)送的異步網(wǎng)頁請求,其中,異步網(wǎng)頁請求中攜帶有請求訪問的網(wǎng)絡(luò)資源地址(即目標(biāo)的網(wǎng)絡(luò)資源的網(wǎng)絡(luò)資源地址,如URL),其中,第一服務(wù)器與客戶端屬于第一域;獲取模塊,用于獲取異步網(wǎng)頁請求中的服務(wù)器標(biāo)志位;生成模塊,用于若服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第二域,則第一服務(wù)器提取網(wǎng)絡(luò)資源地址生成網(wǎng)絡(luò)資源請求,其中,第一域與第二域為不同的域;第一轉(zhuǎn)發(fā)模塊,用于將網(wǎng)絡(luò)資源請求轉(zhuǎn)發(fā)至第二服務(wù)器;第一發(fā)送模塊,用于將接收到的第二服務(wù)器的響應(yīng)數(shù)據(jù)發(fā)送至客戶端,其中,響應(yīng)數(shù)據(jù)中攜帶有網(wǎng)絡(luò)資源地址對應(yīng)的網(wǎng)絡(luò)資源。
[0074]采用本發(fā)明,當(dāng)接收模塊接收到客戶端發(fā)送至第一服務(wù)器的異步網(wǎng)頁請求時,獲取模塊根據(jù)該請求中包含的服務(wù)器標(biāo)志位判斷請求訪問的網(wǎng)絡(luò)資源在第一域或者第二域,若服務(wù)器標(biāo)志位指示請求的網(wǎng)絡(luò)資源在第二域,則生成模塊根據(jù)該請求信息生成網(wǎng)絡(luò)資源請求,然后第一轉(zhuǎn)發(fā)模塊將第一服務(wù)器生成的網(wǎng)絡(luò)資源請求轉(zhuǎn)發(fā)至第二服務(wù)器,在第二服務(wù)器下發(fā)該請求的響應(yīng)數(shù)據(jù)至第一服務(wù)器之后,由第一發(fā)送模塊將第一服務(wù)器接收到的響應(yīng)數(shù)據(jù)下發(fā)至客戶端。采用本發(fā)明,解決了現(xiàn)有技術(shù)中跨域請求網(wǎng)絡(luò)資源操作繁瑣且效率低的問題,從而達到了客戶端對跨域網(wǎng)絡(luò)資源的快速且高效的訪問的效果。
[0075]在本發(fā)明的上述實施例中,該裝置還可以包括:構(gòu)建模塊,用于在第一服務(wù)器接收客戶端發(fā)送的異步網(wǎng)頁請求之前,客戶端使用服務(wù)器標(biāo)志位和網(wǎng)絡(luò)資源地址構(gòu)建異步網(wǎng)頁請求;第二發(fā)送模塊,用于將異步網(wǎng)頁請求發(fā)送至第一服務(wù)器。
[0076]通過上述實施例中,在異步網(wǎng)頁請求中添加服務(wù)器標(biāo)志位,可以使第一服務(wù)器快速判斷該請求目標(biāo)服務(wù)器,從而對該請求進行快速的處理,這樣客戶端對跨域網(wǎng)絡(luò)資源的請求就能得到快速的響應(yīng)。
[0077]在本發(fā)明的上述實施例中,該裝置還可以包括:第一判斷模塊,用于在獲取異步網(wǎng)頁請求中的服務(wù)器標(biāo)志位之后,判斷服務(wù)器標(biāo)志位是否為預(yù)設(shè)值;第一確定模塊,用于若服務(wù)器標(biāo)志位為預(yù)設(shè)值,則確定服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第二域;第二確定模塊,用于若服務(wù)器標(biāo)志位不為預(yù)設(shè)值,則確定服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第一域。
[0078]在本發(fā)明的上述實施例中,該裝置還可以包括:解析模塊,用于在確定服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第一域之后,第一服務(wù)器從異步網(wǎng)頁請求中解析出第二服務(wù)器的IP地址;第二轉(zhuǎn)發(fā)模塊,用于將異步網(wǎng)頁請求轉(zhuǎn)發(fā)至具有IP地址的第二服務(wù)器。
[0079]在本發(fā)明的上述實施例中,通過解析模塊的分析,能夠快速判斷出客戶端的請求是否為對第二域網(wǎng)絡(luò)資源的請求,若該請求為第二域網(wǎng)絡(luò)資源的請求,即第二服務(wù)器屬于第二域,則需提取出請求之中所包含的第二服務(wù)器的IP地址,再根據(jù)上述IP將請求轉(zhuǎn)發(fā)至第二服務(wù)器,避免了直接使用客戶端對第二域網(wǎng)絡(luò)資源進行請求時的繁瑣操作,使客戶端對跨域網(wǎng)絡(luò)資源的請求得到快速的響應(yīng)。
[0080]在本發(fā)明的上述實施例中,第一發(fā)送模塊可以包括:解析子模塊,用于在接收到第二服務(wù)器的響應(yīng)數(shù)據(jù)之后,將響應(yīng)數(shù)據(jù)解析為預(yù)設(shè)格式的解析數(shù)據(jù);第一發(fā)送子模塊,用于將解析數(shù)據(jù)發(fā)送至客戶端。
[0081]本實施例中所提供的各個模塊與方法實施例對應(yīng)步驟所提供的使用方法相同、應(yīng)用場景也可以相同。當(dāng)然,需要注意的是,上述模塊涉及的方案可以不限于上述實施例中的內(nèi)容和場景,且上述模塊可以運行在計算機終端或移動終端,可以通過軟件或硬件實現(xiàn)。
[0082]從以上的描述中,可以看出,本發(fā)明實現(xiàn)了如下技術(shù)效果:
[0083]采用本發(fā)明,當(dāng)?shù)谝环?wù)器接收到客戶端發(fā)送的異步網(wǎng)頁請求時,根據(jù)該請求中包含的服務(wù)器標(biāo)志位判斷請求訪問的網(wǎng)絡(luò)資源在第一域或者第二域,若服務(wù)器標(biāo)志位指示請求的網(wǎng)絡(luò)資源在第二域,則由第一服務(wù)器代理將該異步網(wǎng)頁請求轉(zhuǎn)發(fā)至第二服務(wù)器,在第二服務(wù)器下發(fā)該請求的響應(yīng)數(shù)據(jù)至第一服務(wù)器之后,由第一服務(wù)器將響應(yīng)數(shù)據(jù)下發(fā)至客戶端。采用本發(fā)明,解決了現(xiàn)有技術(shù)中跨域請求網(wǎng)絡(luò)資源操作繁瑣且效率低的問題,從而達到了客戶端對跨域網(wǎng)絡(luò)資源的快速且高效的訪問的效果。
[0084]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0085]需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
[0086]在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
[0087]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合
[0088]在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
[0089]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種客戶端跨域請求網(wǎng)絡(luò)資源的方法,其特征在于,包括: 第一服務(wù)器接收客戶端發(fā)送的異步網(wǎng)頁請求,其中,所述異步網(wǎng)頁請求中攜帶有請求訪問的網(wǎng)絡(luò)資源地址,其中,所述第一服務(wù)器與所述客戶端屬于第一域; 獲取所述異步網(wǎng)頁請求中的服務(wù)器標(biāo)志位; 若所述服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第二域,則所述第一服務(wù)器提取所述網(wǎng)絡(luò)資源地址生成網(wǎng)絡(luò)資源請求,其中,所述第一域與所述第二域為不同的域; 將所述網(wǎng)絡(luò)資源請求轉(zhuǎn)發(fā)至所述第二服務(wù)器; 將接收到的所述第二服務(wù)器的響應(yīng)數(shù)據(jù)發(fā)送至所述客戶端,其中,所述響應(yīng)數(shù)據(jù)中攜帶有所述網(wǎng)絡(luò)資源地址對應(yīng)的網(wǎng)絡(luò)資源。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在獲取所述異步網(wǎng)頁請求中的服務(wù)器標(biāo)志位之后,所述方法包括: 判斷所述服務(wù)器標(biāo)志位是否為預(yù)設(shè)值; 若所述服務(wù)器標(biāo)志位為預(yù)設(shè)值,則確定所述服務(wù)器標(biāo)志位指示所述第二服務(wù)器屬于所述第二域; 若所述服務(wù)器標(biāo)志位不為預(yù)設(shè)值,則確定所述服務(wù)器標(biāo)志位指示所述第二服務(wù)器屬于所述第一域。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在確定所述服務(wù)器標(biāo)志位指示所述第二服務(wù)器屬于所述第一域之后,所述方法還包括: 所述第一服務(wù)器從所述異步網(wǎng)頁請求中解析出所述第二服務(wù)器的IP地址; 將所述異步網(wǎng)頁請求轉(zhuǎn)發(fā)至具有所述IP地址的所述第二服務(wù)器。
4.根據(jù)權(quán)利要求1至3中任意一項所述的方法,其特征在于,將接收到的所述第二服務(wù)器的響應(yīng)數(shù)據(jù)發(fā)送至所述客戶端包括: 在接收到所述第二服務(wù)器的響應(yīng)數(shù)據(jù)之后,將所述響應(yīng)數(shù)據(jù)解析為預(yù)設(shè)格式的解析數(shù)據(jù); 將所述解析數(shù)據(jù)發(fā)送至所述客戶端。
5.根據(jù)權(quán)利要求1至3中任意一項所述的方法,其特征在于,在第一服務(wù)器接收客戶端發(fā)送的異步網(wǎng)頁請求之前,所述方法還包括: 所述客戶端使用服務(wù)器標(biāo)志位和網(wǎng)絡(luò)資源地址構(gòu)建所述異步網(wǎng)頁請求; 將所述異步網(wǎng)頁請求發(fā)送至所述第一服務(wù)器。
6.一種客戶端跨域請求網(wǎng)絡(luò)資源的裝置,其特征在于,包括: 接收模塊,用于第一服務(wù)器接收客戶端發(fā)送的異步網(wǎng)頁請求,其中,所述異步網(wǎng)頁請求中攜帶有請求訪問的網(wǎng)絡(luò)資源地址,其中,所述第一服務(wù)器與所述客戶端屬于第一域; 獲取模塊,用于獲取所述異步網(wǎng)頁請求中的服務(wù)器標(biāo)志位; 生成模塊,用于若所述服務(wù)器標(biāo)志位指示第二服務(wù)器屬于第二域,則所述第一服務(wù)器提取所述網(wǎng)絡(luò)資源地址生成網(wǎng)絡(luò)資源請求,其中,所述第一域與所述第二域為不同的域;第一轉(zhuǎn)發(fā)模塊,用于將所述網(wǎng)絡(luò)資源請求轉(zhuǎn)發(fā)至所述第二服務(wù)器; 第一發(fā)送模塊,用于將接收到的所述第二服務(wù)器的響應(yīng)數(shù)據(jù)發(fā)送至所述客戶端,其中,所述響應(yīng)數(shù)據(jù)中攜帶有所述網(wǎng)絡(luò)資源地址對應(yīng)的網(wǎng)絡(luò)資源。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置包括: 第一判斷模塊,用于在獲取所述異步網(wǎng)頁請求中的服務(wù)器標(biāo)志位之后,判斷所述服務(wù)器標(biāo)志位是否為預(yù)設(shè)值; 第一確定模塊,用于若所述服務(wù)器標(biāo)志位為預(yù)設(shè)值,則確定所述服務(wù)器標(biāo)志位指示所述第二服務(wù)器屬于所述第二域; 第二確定模塊,用于若所述服務(wù)器標(biāo)志位不為預(yù)設(shè)值,則確定所述服務(wù)器標(biāo)志位指示所述第二服務(wù)器屬于所述第一域。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 解析模塊,用于在確定所述服務(wù)器標(biāo)志位指示所述第二服務(wù)器屬于所述第一域之后,所述第一服務(wù)器從所述異步網(wǎng)頁請求中解析出所述第二服務(wù)器的IP地址; 第二轉(zhuǎn)發(fā)模塊,用于將所述異步網(wǎng)頁請求轉(zhuǎn)發(fā)至具有所述IP地址的所述第二服務(wù)器。
9.根據(jù)權(quán)利要求6至8中任意一項所述的裝置,其特征在于,所述第一發(fā)送模塊包括: 解析子模塊,用于在接收到所述第二服務(wù)器的響應(yīng)數(shù)據(jù)之后,將所述響應(yīng)數(shù)據(jù)解析為預(yù)設(shè)格式的解析數(shù)據(jù); 第一發(fā)送子模塊,用于將所述解析數(shù)據(jù)發(fā)送至所述客戶端。
10.根據(jù)權(quán)利要求6至8中任意一項所述的裝置,其特征在于,所述裝置還包括: 構(gòu)建模塊,用于在第一服務(wù)器接收客戶端發(fā)送的異步網(wǎng)頁請求之前,所述客戶端使用服務(wù)器標(biāo)志位和網(wǎng)絡(luò)資源地址構(gòu)建所述異步網(wǎng)頁請求; 第二發(fā)送模塊,用于將所述異步網(wǎng)頁請求發(fā)送至所述第一服務(wù)器。
【文檔編號】H04L29/08GK104410711SQ201410779427
【公開日】2015年3月11日 申請日期:2014年12月15日 優(yōu)先權(quán)日:2014年12月15日
【發(fā)明者】李慶 申請人:北京國雙科技有限公司