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