2011-04-13 84 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

这里面没有#,所以如果你有任何问题,他们没有这个问题有关。