2011-04-13 85 views

回答

0

我想我終於明白了問題所在。 我們的GWT應用程序是爲坐在一個iframe內的另一個HTML文件,設置GWT的歷史支持

<iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe> 

在外部HTML而不是GWT一個工作要做。 這個gwt腳本是爲了支持沒有實現onhashchange事件的瀏覽器,如IE6和IE7。

0

歷史完美地工作以及在我們所有的IE版本GWT應用程序...

這票是關於XMLHttpRequest的,所以在你的XMLHttpRequest不使用哈希。它與GWT無關。

+0

我同意這就是爲什麼我用ajax標記它,但因爲我們正在使用GWT,我認爲可能有一個解決方法,GWT可以提供除修改URL之外。這是否意味着你不在你的GWT應用中使用「#」? – Joly 2011-04-13 18:02:34

+0

如果您在網址中沒有使用「#」,那麼您如何讓自己的網站符合Google的Ajax抓取方案,以便在需要#時抓取它!在網址中? http://code.google.com/web/ajaxcrawling/docs/getting-started.html。此外,Facebook等網站似乎在他們的網址中有#號,並且它似乎在IE7 – Joly 2011-04-13 18:06:23

+0

下工作當您在瀏覽器中鍵入URL時,URL中的「位置」部分(#後面的部分)不會傳遞到服務器。位置(或散列,如果你喜歡的話)嚴格用於客戶端。您的服務器不應該在請求URL中接受#。這就是爲什麼你沒有理由將它與XmlHttpRequest一起傳遞。如果您想傳遞一些參數,請使用常規查詢字符串,如下所示:?param1 = value1&... – 2011-04-19 15:56:31

0

首先,提供的鏈接中描述的問題與您使用XMLHttpRequest查詢的URL相關。在GWT應用程序中#可以出現在普通的GET請求中(當你打開頁面時,就是當你開始你的GWT應用程序時)。當GWT做的XMLHttpRequest請求時,它使用了類似的網址:

http://yourserver.com/context/com.yourcompany.SomeModule/someService

這裏面沒有#,所以如果你有任何問題,他們沒有這個問題有關。