国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用window.location.href跳轉頁面在IE和FF瀏覽器中路徑不一致的問題總結

2019-11-15 00:46:52
字體:
來源:轉載
供稿:網友
使用window.location.href跳轉頁面在IE和FF瀏覽器中路徑不一致的問題總結

  上周五的時候遇到一個問題,平時做項目的時候一直使用的是火狐瀏覽器,上周完成了一個小論壇的功能,因為訪問論壇是不需要的用戶登錄的,只有發帖和回復的時候才需要用戶登錄,所以就在系統中加了一個攔截器,發帖時候如果沒有登錄就跳轉到登錄頁面,功能完成以后在火狐瀏覽器下面使用完全沒問題,平時很少使用IE瀏覽器,所以也沒有在IE下面測試就直接放到服務器上測試了,在服務器上測試的時候還是使用的火狐,也沒什么問題,但是我的一個同事去測試的時候就出現了問題,他是使用的IE瀏覽器,訪問的時候明明是不需要用戶登錄的地方也跳轉到了登錄頁面,功能完全都亂了,一直在跳轉登錄頁面,就開始第一下進入不會出現登錄頁面,然后不管點擊什么按鈕都是登錄頁面。

  針對上面的問題我就開始調,開始的時候以為是我的攔截器的問題,但是在使用火狐調的時候完全沒問題,然后我就使用IE11開始測試,debug攔截器,然后就發現了一個問題,第一次進入的時候攔截器獲取到的路徑是/com/action.action,但是點擊下一個連接的時候就變成了/com/com/action.action,每點擊一個連接都會在方法的前面再加上一個/com,/com是我struts2的命名空間,但是在FF下面測試的時候攔截器每次獲取的路徑都是/com/action.action,所以在FF下面運行時沒問題的。

  然后就開始去問度娘怎么解決,度娘給出的答案是IE瀏覽器在解析window.location.href = url的時候,如果url是相對路徑,那么IE瀏覽器解析的時候是會出現問題的,不能正確訪問,由于當時比較著急,所以也就沒想那么多,就繼續針對這個問題再網上找解決辦法,然后就發現了下面的方法:

function getContextPath() {    var pathName = document.location.pathname;    var index = pathName.substr(1).indexOf("/");    var result = pathName.substr(0,index+1);    return result;  }var path = getContextPath();window.location.href = path+"/com/forumAction_list.do";

使用這種方式之后在本地測試不管是IE還是火狐或者谷歌都沒問題了,以為問題解決了,然后就在服務器上測試,但是到了服務器上之后所有的瀏覽器全部不好使了,都是點擊一下就會出現登錄頁面,很郁悶有沒有,然后就繼續在網上找答案,但是很多都是直接復制上面的方法,根本沒有什么實質性的作用,然后在博客園還有CSDN發帖詢問,但是也沒有得到什么有用的信息,可能大神們都在code/code/code.......,然后就一直拖到了今天,重新看別人發帖詢問時的回復,有人說是使用絕對路徑可以解決,然后就抱著試一試的心態改了一下,然后就成功了。

  解決辦法就是使用絕對路徑,所以上面的url就可以改成“/項目名稱/xxx/xxxAction_xxx.do”,經測試在服務器和本地的IE和火狐還有谷歌都是適應的,在此記錄一下,備忘一下,也希望能幫到其他遇到這個問題的人,有問題的地方歡迎大神們指出。

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄龙县| 桦南县| 镇远县| 大姚县| 易门县| 泗洪县| 巢湖市| 荆州市| 万宁市| 华阴市| 沽源县| 鹤岗市| 淮南市| 唐山市| 包头市| 明光市| 五常市| 桐乡市| 房产| 龙井市| 六盘水市| 凤山县| 济南市| 长岭县| 边坝县| 临朐县| 巴马| 科技| 北辰区| 丰城市| 日喀则市| 军事| 策勒县| 张家口市| 河津市| 都安| 伊金霍洛旗| 胶南市| 松潘县| 密云县| 嘉荫县|