專利名稱:頁面訪問方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種頁面訪問方法及系統(tǒng)。
背景技術(shù):
移動運營商或者其他服務(wù)提供商等一般都需要通過Web訪問門戶系統(tǒng)來向用戶提供其呼叫中心的客戶服務(wù)系統(tǒng),在該門戶系統(tǒng)的Web界面上需要大量集成第三方的系統(tǒng)或應(yīng)用。如果采用WebService (Web服務(wù))之類的接口方式,而現(xiàn)有的第三方系統(tǒng)又暫未提供ffeb Service之類的服務(wù)接口的情形下,雙方都需要進行開發(fā),而且工作量都比較大。另一種傳統(tǒng)的方式是在主界面上使用iframe (框架網(wǎng)頁或內(nèi)嵌框架)來嵌入第三方系統(tǒng)的頁面,這種方式在一般情況下可能不會出現(xiàn)問題。但是,當嵌入的第三方系統(tǒng)的頁面需要與window, parent (父窗口 )或window, top (頂級窗口 )進行交互時(如嵌入的頁面要在頂級窗口中彈出浮動窗口以讓使用者輸入一些信息時),因為客戶端的瀏覽器需要訪問 window, parent 或 window, top,而 window, parent 代表的父窗口或者 window, top 代表的頂級窗口又來自門戶系統(tǒng),和第三方系統(tǒng)不在同一個域,這就出現(xiàn)了跨域(CrossDomain) 的問題。而一般的瀏覽器在出現(xiàn)跨域的情況下都會認為是不安全的,因此就會禁止用戶訪問,有的瀏覽器甚至會報出“沒有權(quán)限”的錯誤警告,從而導(dǎo)致第三方系統(tǒng)的頁面提供的功能無法實現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種頁面訪問方法及系統(tǒng),以至少解決上述的第三方系統(tǒng)的頁面提供的功能無法實現(xiàn)的問題。根據(jù)本發(fā)明的一個方面,提供了一種頁面訪問方法,包括門戶系統(tǒng)接收來自客戶端瀏覽器的訪問請求,其中,訪問請求用于請求訪問內(nèi)嵌的第三方系統(tǒng)的頁面,訪問請求的目的地址為門戶系統(tǒng)的代理統(tǒng)一資源定位符(URL)地址,且第三方系統(tǒng)的地址作為代理 URL地址的參數(shù);門戶系統(tǒng)將訪問請求轉(zhuǎn)發(fā)給第三方系統(tǒng);門戶系統(tǒng)接收第三方系統(tǒng)返回的訪問請求響應(yīng),將訪問請求響應(yīng)轉(zhuǎn)發(fā)給客戶端瀏覽器,其中,訪問請求響應(yīng)的源地址為代理URL地址,且第三方系統(tǒng)的地址作為代理URL地址的參數(shù)。進一步地,第三方系統(tǒng)以框架網(wǎng)頁(iframe)的方式內(nèi)嵌在門戶系統(tǒng)的Web界面上,其中,在內(nèi)嵌時,第三方系統(tǒng)的頁面的地址設(shè)置為代理URL地址,且第三方系統(tǒng)的地址作為代理URL地址的參數(shù)。進一步地,在門戶系統(tǒng)將訪問請求轉(zhuǎn)發(fā)給第三方系統(tǒng)之前,還包括門戶系統(tǒng)解析接收到的訪問請求,得到第三方系統(tǒng)的地址和客戶端瀏覽器的請求方式;門戶系統(tǒng)將訪問請求重新封裝后,按照請求方式發(fā)送給第三方系統(tǒng)。進一步地,在門戶系統(tǒng)將訪問請求轉(zhuǎn)發(fā)給第三方系統(tǒng)之后,還包括第三方系統(tǒng)將頁面上使用的URL地址設(shè)置為絕對地址;第三方系統(tǒng)將頁面攜帶在訪問請求響應(yīng)中發(fā)送給門戶系統(tǒng)。
進一步地,第三方系統(tǒng)將頁面上使用的URL地址設(shè)置為絕對地址包括當頁面上包括靜態(tài)資源時,第三方系統(tǒng)將靜態(tài)資源的URL地址設(shè)置為絕對地址,其中,靜態(tài)資源至少包括以下之一引用樣式表文件、腳本文件、圖片;當頁面上包括需要客戶端瀏覽器提交的 URL地址或者使用ajax請求訪問的URL地址時,第三方系統(tǒng)將提交的URL地址或者使用 ajax請求訪問的URL地址設(shè)置為絕對地址。進一步地,當頁面上包括需要客戶端瀏覽器提交的URL地址或者使用ajax請求訪問的URL地址時,在第三方系統(tǒng)將頁面攜帶在訪問請求響應(yīng)中發(fā)送給門戶系統(tǒng)之前,還包括第三方系統(tǒng)將絕對地址轉(zhuǎn)換為代理URL地址,并且絕對地址作為代理URL地址的參數(shù)。
進一步地,訪問請求為超文本傳輸協(xié)議(HTTP)請求,訪問請求響應(yīng)為HTTP響應(yīng)。根據(jù)本發(fā)明的另一個方面,提供了一種頁面訪問系統(tǒng),包括門戶系統(tǒng)和內(nèi)嵌在門戶系統(tǒng)的Web界面上的第三方系統(tǒng),其中,門戶系統(tǒng)包括接收模塊,用于接收來自客戶端瀏覽器的訪問請求以及接收第三方系統(tǒng)針對訪問請求返回的訪問請求響應(yīng),其中,訪問請求用于請求訪問第三方系統(tǒng)的頁面,訪問請求的目的地址為門戶系統(tǒng)的代理統(tǒng)一資源定位符(URL)地址,且第三方系統(tǒng)的地址作為代理URL地址的參數(shù);第一發(fā)送模塊,用于將訪問請求轉(zhuǎn)發(fā)給第三方系統(tǒng),以及將訪問請求響應(yīng)轉(zhuǎn)發(fā)給客戶端瀏覽器,其中,訪問請求響應(yīng)的源地址為代理URL地址,且第三方系統(tǒng)的地址作為代理URL地址的參數(shù)。進一步地,門戶系統(tǒng)還包括解析模塊,用于在第一發(fā)送模塊將訪問請求轉(zhuǎn)發(fā)給第三方系統(tǒng)之前,解析訪問請求,得到第三方系統(tǒng)的地址和客戶端瀏覽器的請求方式;其中, 第一發(fā)送模塊還用于將訪問請求重新封裝后,按照請求方式發(fā)送給第三方系統(tǒng)。進一步地,第三方系統(tǒng)包括處理模塊,用于將頁面上使用的URL地址設(shè)置為絕對地址;第二發(fā)送模塊,用于將頁面攜帶在訪問請求響應(yīng)中發(fā)送給門戶系統(tǒng)。通過本發(fā)明,通過在門戶系統(tǒng)上設(shè)置一個代理URL地址,客戶端瀏覽器訪問內(nèi)嵌在門戶系統(tǒng)的Web界面的第三方系統(tǒng)的頁面時,通過該門戶系統(tǒng)的代理URL地址訪問且第三方系統(tǒng)的地址作為該代理URL地址的參數(shù),以及在接收到的訪問請求響應(yīng)的源地址也為該代理URL地址且第三方系統(tǒng)的地址作為該代理URL地址的參數(shù),這樣,用戶通過瀏覽器對第三方系統(tǒng)的頁面進行操作時,瀏覽器就認為該頁面是來自門戶系統(tǒng)的,與父窗口或頂級窗口是同一個域的,因此就可以安全地使用腳本訪問window, parent或window, top。本實施例解決了現(xiàn)有技術(shù)中當出現(xiàn)跨域問題時第三方系統(tǒng)的頁面提供的功能無法實現(xiàn)的問題, 從而能夠訪問window, parent或window, top,實現(xiàn)諸如在頂級窗口中居中顯示浮動窗口等之類的第三方系統(tǒng)提供的功能。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中圖1是根據(jù)本發(fā)明實施例的頁面訪問方法的流程圖;圖2是根據(jù)本發(fā)明優(yōu)選實施例的頁面訪問方法的具體處理流程圖;圖3是本發(fā)明實施例的頁面訪問系統(tǒng)的示意圖;圖4是本發(fā)明優(yōu)選實施例的頁面訪問系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施例方式下文中將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。圖1是根據(jù)本發(fā)明實施例的頁面訪問方法,包括以下步驟步驟S102,門戶系統(tǒng)接收來自客戶端瀏覽器的訪問請求,其中,該訪問請求用于請求訪問內(nèi)嵌的第三方系統(tǒng)的頁面(即網(wǎng)頁),該訪問請求的目的地址為門戶系統(tǒng)的代理URL 地址,且第三方系統(tǒng)的地址作為該代理URL地址的參數(shù);例如,第三方系統(tǒng)的地址為X,代理URL地址為/proxy, do,則該訪問請求的目的地址為 /proxy, do ? _url = X。步驟S104,門戶系統(tǒng)將接收到的訪問請求轉(zhuǎn)發(fā)給第三方系統(tǒng);步驟S106,門戶系統(tǒng)接收第三方系統(tǒng)返回的訪問請求響應(yīng),將該訪問請求響應(yīng)轉(zhuǎn)發(fā)給客戶端瀏覽器以由客戶端瀏覽器生成所要訪問的頁面,其中,該訪問請求響應(yīng)的源地址為上述代理URL地址,且第三方系統(tǒng)的地址作為該代理URL地址的參數(shù)。其中,源地址的形式與上例類似。本實施例通過在門戶系統(tǒng)上設(shè)置一個代理URL地址,客戶端瀏覽器訪問內(nèi)嵌在門戶系統(tǒng)的Web界面的第三方系統(tǒng)的頁面時,通過該門戶系統(tǒng)的代理URL地址訪問且第三方系統(tǒng)的地址作為該代理URL地址的參數(shù),以及在接收到的訪問請求響應(yīng)的源地址也為該代理URL地址且第三方系統(tǒng)的地址作為該代理URL地址的參數(shù),這樣,用戶通過瀏覽器對第三方系統(tǒng)的頁面進行操作時,瀏覽器就認為該頁面是來自門戶系統(tǒng)的,與父窗口或頂級窗口是同一個域的,因此就可以安全地使用腳本訪問window, parent或window, top。本實施例解決了現(xiàn)有技術(shù)中當出現(xiàn)跨域問題時第三方系統(tǒng)的頁面提供的功能無法實現(xiàn)的問題,從而能夠訪問window, parent或window, top,能夠正常地實現(xiàn)諸如在頂級窗口中居中顯示浮動窗口等之類的第三方系統(tǒng)提供的功能。在實際實施時,上述實施例中的訪問請求可以為HTTP(Hypertext Transfer Protocol,超文本傳輸協(xié)議)請求,上述訪問請求響應(yīng)可以為HTTP響應(yīng)。在實際實施時,根據(jù)本發(fā)明優(yōu)選實施例的頁面訪問方法的具體實現(xiàn)流程如圖2所示,包括以下步驟步驟S202,門戶系統(tǒng)的Web界面上用iframe (框架網(wǎng)頁或內(nèi)嵌網(wǎng)頁)嵌入第三方系統(tǒng)的頁面,內(nèi)嵌的第三方系統(tǒng)的頁面的地址不是直接使用第三方系統(tǒng)的地址,需要經(jīng)過轉(zhuǎn)換處理,設(shè)置為門戶系統(tǒng)的代理URL(Uniform Resource Locator,統(tǒng)一資源定位符)地址,而第三方系統(tǒng)的地址作為該代理URL地址的參數(shù);例如第三方系統(tǒng)的地址為X,代理URL地址為/proxy, do。那么,內(nèi)嵌的第三方系統(tǒng)的頁面的地址不能直接使用〈iframe src =“ X" ></iframe> ;而是要轉(zhuǎn)換為〈iframe src = 〃 /proxy, do ? _url = X" ></iframe>0步驟S204,門戶系統(tǒng)接收到來自客戶端瀏覽器的HTTP請求(報文)后,轉(zhuǎn)發(fā)HTTP 請求到第三方系統(tǒng);步驟S202完成后,客戶端瀏覽器就會向門戶系統(tǒng)的代理URL地址/proxy, do發(fā)送 HTTP請求。
該步驟對應(yīng)于圖1中的步驟S102。步驟S206,門戶系統(tǒng)解析接收到的HTTP請求,得到第三方系統(tǒng)的地址和客戶端瀏覽器的請求方式;步驟S206中的解析過程完成以下功能(1)從HTTP請求的參數(shù)中提取出第三方系統(tǒng)的地址;(2)從HTTP請求中分析客戶端瀏覽器的請求方式是GET(獲取)還是POST(發(fā)送);其中,GET是向特定的資源發(fā)出請求。注意GET方法不應(yīng)當被用于產(chǎn)生“副作用” 的操作中,例如在W^eb Application(應(yīng)用)中。其中一個原因是GET可能會被網(wǎng)絡(luò)蜘蛛等隨意訪問。POST是向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件),數(shù)據(jù)被包含在請求體中。POST請求可能會導(dǎo)致新的資源的創(chuàng)建和/或已有資源的修改。(3)從HTTP請求中提取HTTP請求頭和其他參數(shù)。步驟S208,門戶系統(tǒng)將該HTTP請求重新封裝后,按照步驟S206中解析得到的請求方式發(fā)送給第三方系統(tǒng);門戶系統(tǒng)根據(jù)解析得到的請求方式,如GET或POST,使用對應(yīng)的GET或POST方式, 將解析得到的請求頭和參數(shù)和代理URL地址重新封裝成HTTP請求(如將代理URL地址放入 HTTP請求的請求頭或參數(shù)),再向步驟S206中解析得到的第三方系統(tǒng)的地址發(fā)送該HTTP 請求(即重新封裝后的HTTP請求),并等待接收第三方系統(tǒng)完成處理后返回的HTTP響應(yīng) (報文)。步驟S210,第三方系統(tǒng)接收到HTTP請求報文后,處理頁面上的URL地址,即將頁面上使用的URL地址設(shè)置為絕對地址;具體地,解析HTTP請求報文,從HTTP請求參數(shù)或者請求頭中解析出代理URL地址,然后,處理頁面上用到的URL地址。頁面上用到的URL地址的處理分兩種情況(1)引用樣式表文件、腳本文件、圖片等靜態(tài)資源時使用絕對地址,如<link type = ‘‘ text/ess ‘‘ href = ‘‘ http//abc/d. ess ‘‘ rel =〃 stylesheet" /> ;<script type = “ text/javascript " src = " http://abc/e. js “ ></ script);<imgsrc=〃 http://abc/f. jpg" />。即,當頁面上包括靜態(tài)資源時,第三方系統(tǒng)將靜態(tài)資源的URL地址設(shè)置為絕對地址,其中,靜態(tài)資源至少包括以下之一引用樣式表文件、腳本文件、圖片。其理由是如果被請求的第三方系統(tǒng)的網(wǎng)頁中使用了相對地址,則在HTTP響應(yīng)返回到客戶端瀏覽器之后,客戶端瀏覽器會用門戶系統(tǒng)的地址來計算資源的絕對地址,這樣就造成了客戶端瀏覽器訪問門戶系統(tǒng)而不會去第三方系統(tǒng)請求資源,而門戶系統(tǒng)又不存在需要的資源時,就會造成頁面顯示異常或功能異常。例如第三方系統(tǒng)的圖片HTML代碼為<img src = " fjpg" />,門戶系統(tǒng)的地址為http://ddd,則客戶端瀏覽器計算出來的地址是http://ddd/f. jpg,而不是想要的http://abc/f. jpg0而如果第三方系統(tǒng)的圖片HTML代碼為〈imgsrc = " http //abc/f. jpg" />,客戶端瀏覽器就會準確地找到指定的資源。(2)需要用戶進行提交或者用 ajax(Asynchronous JavaScriptand XML,異步 JavaScript和XML(Extension Markup Language,可擴展標記語言))請求訪問的URL地址, 也要使用絕對地址。即,當頁面上包括需要客戶端瀏覽器提交的URL地址或者使用ajax請求訪問的URL地址時,第三方系統(tǒng)將該提交的URL地址或者該使用ajax請求訪問的URL地址設(shè)置為絕對地址。同時,還需使用解析得到的代理URL地址進行轉(zhuǎn)換,如原地址為X,代理URL地址為 Y,需要轉(zhuǎn)換為Y _url =X的形式,S卩,第三方系統(tǒng)將使用的絕對地址轉(zhuǎn)換為該代理URL 地址,并且該絕對地址作為該代理URL地址的參數(shù)。其理由是如果需要用戶進行提交的URL地址不進行轉(zhuǎn)換,則用戶會直接提交到第三方系統(tǒng),這樣就離開了門戶系統(tǒng),如果再想訪問window, parent或window, top,同樣會引起跨域問題;如果ajax請求的URL地址不進行轉(zhuǎn)換,也會引起跨域問題,導(dǎo)致客戶端瀏覽器進行阻止,進而使得第三方系統(tǒng)提供的功能無效,甚至是報錯。步驟S212,網(wǎng)頁(頁面)經(jīng)過上述處理后,第三方系統(tǒng)將處理后的頁面攜帶在 HTTP響應(yīng)中發(fā)送給門戶系統(tǒng);步驟S214,門戶系統(tǒng)接收到第三方系統(tǒng)傳回來的經(jīng)過上述處理后的HTTP響應(yīng)報文,返回給客戶端瀏覽器生成最終的Web頁面。圖3是根據(jù)本發(fā)明實施例的頁面訪問系統(tǒng),包括門戶系統(tǒng)10和內(nèi)嵌在門戶系統(tǒng) 10的Web界面上的第三方系統(tǒng)20,其中,門戶系統(tǒng)10包括接收模塊102,用于接收來自客戶端瀏覽器30的訪問請求以及接收第三方系統(tǒng)20 針對該訪問請求返回的訪問請求響應(yīng),其中,該訪問請求用于請求訪問第三方系統(tǒng)20的頁面,該訪問請求的目的地址為門戶系統(tǒng)10的代理URL地址,且第三方系統(tǒng)20的地址作為該代理URL地址的參數(shù);第一發(fā)送模塊104,用于將接收模塊102接收到的訪問請求轉(zhuǎn)發(fā)給第三方系統(tǒng)20, 以及將訪問請求響應(yīng)轉(zhuǎn)發(fā)給客戶端瀏覽器30,其中,該訪問請求響應(yīng)的源地址為代理URL 地址,且第三方系統(tǒng)20的地址作為該代理URL地址的參數(shù)。其中,第三方系統(tǒng)20以iframe的方式內(nèi)嵌在門戶系統(tǒng)10的Web界面上,其中,在內(nèi)嵌時,第三方系統(tǒng)20的頁面的地址設(shè)置為上述代理URL地址,且第三方系統(tǒng)20的地址作為該代理URL地址的參數(shù)。例如第三方系統(tǒng)20的地址為X,代理URL地址為/proxy, do。那么,內(nèi)嵌的第三方系統(tǒng)20的頁面的地址不能直接使用〈iframe src = “ X" ></iframe> ;而應(yīng)該使用 <iframe src = “ /proxy, do ? _url = X〃 ></iframe>。為了實現(xiàn)第一發(fā)送模塊104對訪問請求的轉(zhuǎn)發(fā),門戶系統(tǒng)10還可以包括解析模塊106,用于在第一發(fā)送模塊104將接收模塊102接收到的訪問請求轉(zhuǎn)發(fā)給第三方系統(tǒng)20 之前,解析該訪問請求,得到第三方系統(tǒng)20的地址和客戶端瀏覽器30的請求方式;其中,第一發(fā)送模塊104還用于將訪問請求重新封裝后,按照解析模塊106解析得到的請求方式發(fā)送給解析模塊106解析得到的第三方系統(tǒng)的地址。為了使得客戶端瀏覽器能夠正常顯示頁面等,在實施應(yīng)用時,第三方系統(tǒng)20可以包括處理模塊202,用于將頁面上使用的URL地址設(shè)置為絕對地址;第二發(fā)送模塊204,用于將頁面攜帶在訪問請求響應(yīng)中發(fā)送給門戶系統(tǒng)10。其中,處理模塊202將頁面上使用的URL地址設(shè)置為絕對地址的方式包括當頁面上包括靜態(tài)資源時,將靜態(tài)資源的URL地址設(shè)置為絕對地址,其中,靜態(tài)資源至少包括以下之一引用樣式表文件、腳本文件、圖片;當頁面上包括需要客戶端瀏覽器30提交的URL地址或者使用ajax請求訪問的URL地址時,將該提交的URL地址或者該使用ajax請求訪問的URL地址設(shè)置為絕對地址。當頁面上包括需要客戶端瀏覽器30提交的URL地址或者使用ajax請求訪問的 URL地址時,為了避免仍然會出現(xiàn)的跨域問題,處理模塊202還可以用于在第一發(fā)送模塊 104將頁面攜帶在訪問請求響應(yīng)中發(fā)送給門戶系統(tǒng)10之前,將設(shè)置的絕對地址轉(zhuǎn)換為代理 URL地址,并且該絕對地址作為該代理URL地址的參數(shù)。上述的訪問請求可以為HTTP請求,以及訪問請求響應(yīng)可以為HTTP響應(yīng)。如圖4所示,在實際實施時,可以由門戶系統(tǒng)代理模塊來實現(xiàn)門戶系統(tǒng)10中的接收模塊102、第一發(fā)送模塊104和解析模塊106,為了能夠確保由該門戶系統(tǒng)代理模塊來實現(xiàn)上述三個功能模塊的功能,可以將門戶系統(tǒng)10的上述代理URL地址設(shè)置為該門戶系統(tǒng)代理模塊的URL地址。還可以由第三方頁面處理模塊來實現(xiàn)第三方系統(tǒng)20中的處理模塊202 和第二發(fā)送模塊204。在上述實施例中,需要注意的是如果第三方系統(tǒng)需要獲取客戶端瀏覽器所在計算機的IP地址等信息(例如在需要統(tǒng)計訪問量或者寫日志時),需要與門戶系統(tǒng)代理模塊進行約定,先由門戶系統(tǒng)代理模塊取得,然后門戶系統(tǒng)代理模塊再以HTTP請求參數(shù)或HTTP 頭的方式傳送給第三方系統(tǒng)。從以上的描述中,可以看出,本發(fā)明實現(xiàn)了如下技術(shù)效果通過上述實施例的頁面訪問方法和系統(tǒng)為用戶提供了一種跨域訪問的解決方案, 基本上不用修改原有的業(yè)務(wù)邏輯,也不用修改客戶端瀏覽器的設(shè)置,可以快速開發(fā)和部署, 而且成本較低。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種頁面訪問方法,其特征在于,包括門戶系統(tǒng)接收來自客戶端瀏覽器的訪問請求,其中,所述訪問請求用于請求訪問內(nèi)嵌的第三方系統(tǒng)的頁面,所述訪問請求的目的地址為所述門戶系統(tǒng)的代理統(tǒng)一資源定位符 URL地址,且所述第三方系統(tǒng)的地址作為所述代理URL地址的參數(shù);所述門戶系統(tǒng)將所述訪問請求轉(zhuǎn)發(fā)給所述第三方系統(tǒng);所述門戶系統(tǒng)接收所述第三方系統(tǒng)返回的訪問請求響應(yīng),將所述訪問請求響應(yīng)轉(zhuǎn)發(fā)給所述客戶端瀏覽器,其中,所述訪問請求響應(yīng)的源地址為所述代理URL地址,且所述第三方系統(tǒng)的地址作為所述代理URL地址的參數(shù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第三方系統(tǒng)以框架網(wǎng)頁iframe的方式內(nèi)嵌在所述門戶系統(tǒng)的Web界面上,其中,在內(nèi)嵌時,所述第三方系統(tǒng)的頁面的地址設(shè)置為所述代理URL地址,且所述第三方系統(tǒng)的地址作為所述代理URL地址的參數(shù)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述門戶系統(tǒng)將所述訪問請求轉(zhuǎn)發(fā)給所述第三方系統(tǒng)之前,還包括所述門戶系統(tǒng)解析接收到的所述訪問請求,得到所述第三方系統(tǒng)的地址和所述客戶端瀏覽器的請求方式;所述門戶系統(tǒng)將所述訪問請求重新封裝后,按照所述請求方式發(fā)送給所述第三方系統(tǒng)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述門戶系統(tǒng)將所述訪問請求轉(zhuǎn)發(fā)給所述第三方系統(tǒng)之后,還包括所述第三方系統(tǒng)將所述頁面上使用的URL地址設(shè)置為絕對地址;所述第三方系統(tǒng)將所述頁面攜帶在所述訪問請求響應(yīng)中發(fā)送給所述門戶系統(tǒng)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述第三方系統(tǒng)將所述頁面上使用的URL 地址設(shè)置為絕對地址包括當所述頁面上包括靜態(tài)資源時,所述第三方系統(tǒng)將所述靜態(tài)資源的URL地址設(shè)置為絕對地址,其中,所述靜態(tài)資源至少包括以下之一引用樣式表文件、腳本文件、圖片;當所述頁面上包括需要所述客戶端瀏覽器提交的URL地址或者使用ajax請求訪問的 URL地址時,所述第三方系統(tǒng)將所述提交的URL地址或者所述使用ajax請求訪問的URL地址設(shè)置為絕對地址。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,當所述頁面上包括需要所述客戶端瀏覽器提交的URL地址或者使用ajax請求訪問的URL地址時,在所述第三方系統(tǒng)將所述頁面攜帶在所述訪問請求響應(yīng)中發(fā)送給所述門戶系統(tǒng)之前,還包括所述第三方系統(tǒng)將所述絕對地址轉(zhuǎn)換為所述代理URL地址,并且所述絕對地址作為所述代理URL地址的參數(shù)。
7.根據(jù)權(quán)利要求1至6中任一項所述的方法,其特征在于,所述訪問請求為超文本傳輸協(xié)議HTTP請求,所述訪問請求響應(yīng)為HTTP響應(yīng)。
8.一種頁面訪問系統(tǒng),其特征在于,包括門戶系統(tǒng)和內(nèi)嵌在所述門戶系統(tǒng)的Web界面上的第三方系統(tǒng),其中,所述門戶系統(tǒng)包括接收模塊,用于接收來自客戶端瀏覽器的訪問請求以及接收所述第三方系統(tǒng)針對所述訪問請求返回的訪問請求響應(yīng),其中,所述訪問請求用于請求訪問所述第三方系統(tǒng)的頁面,所述訪問請求的目的地址為所述門戶系統(tǒng)的代理統(tǒng)一資源定位符URL地址,且所述第三方系統(tǒng)的地址作為所述代理URL地址的參數(shù);第一發(fā)送模塊,用于將所述訪問請求轉(zhuǎn)發(fā)給所述第三方系統(tǒng),以及將所述訪問請求響應(yīng)轉(zhuǎn)發(fā)給所述客戶端瀏覽器,其中,所述訪問請求響應(yīng)的源地址為所述代理URL地址,且所述第三方系統(tǒng)的地址作為所述代理URL地址的參數(shù)。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述門戶系統(tǒng)還包括解析模塊,用于在所述第一發(fā)送模塊將所述訪問請求轉(zhuǎn)發(fā)給所述第三方系統(tǒng)之前,解析所述訪問請求,得到所述第三方系統(tǒng)的地址和所述客戶端瀏覽器的請求方式;其中,所述第一發(fā)送模塊還用于將所述訪問請求重新封裝后,按照所述請求方式發(fā)送給所述第三方系統(tǒng)。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述第三方系統(tǒng)包括 處理模塊,用于將所述頁面上使用的URL地址設(shè)置為絕對地址;第二發(fā)送模塊,用于將所述頁面攜帶在所述訪問請求響應(yīng)中發(fā)送給所述門戶系統(tǒng)。
全文摘要
本發(fā)明公開了一種頁面訪問方法及系統(tǒng),其中,該頁面訪問方法包括門戶系統(tǒng)接收來自客戶端瀏覽器的訪問請求,其中,訪問請求用于請求訪問內(nèi)嵌的第三方系統(tǒng)的頁面,訪問請求的目的地址為門戶系統(tǒng)的代理統(tǒng)一資源定位符(URL)地址,且第三方系統(tǒng)的地址作為代理URL地址的參數(shù);門戶系統(tǒng)將訪問請求轉(zhuǎn)發(fā)給第三方系統(tǒng);門戶系統(tǒng)接收第三方系統(tǒng)返回的訪問請求響應(yīng),將訪問請求響應(yīng)轉(zhuǎn)發(fā)給客戶端瀏覽器,其中,訪問請求響應(yīng)的源地址為代理URL地址,且第三方系統(tǒng)的地址作為代理URL地址的參數(shù)。本發(fā)明在出現(xiàn)跨域問題時,能夠?qū)崿F(xiàn)諸如在頂級窗口中居中顯示浮動窗口等之類的第三方系統(tǒng)提供的功能。
文檔編號H04L29/12GK102447726SQ20101051002
公開日2012年5月9日 申請日期2010年10月15日 優(yōu)先權(quán)日2010年10月15日
發(fā)明者鄭偉 申請人:中興通訊股份有限公司