2012-01-02 71 views
2

所以我有我的网站在http://example.com/foo/(在一个目录下,主要的域是其他的东西)。处理来自不同页面的Ajax网址?

使用的.htaccess,我已经设置了我的网页这样的URL看起来像http://example.com/foo/about/http://example.com/foo/polls/http://example.com/foo/registration/,等这个伟大的工程,该网站加载罚款,并可以在没有任何JavaScript的问题进行遍历。

现在,我想添加一些AJAX功能的导航。如果我在http://example.com/foo/上,并点击“关于”导航,它将URL更改为http://example.com/foo/#about,并动态加载网站某一部分的关于页面。我也有这个工作。

我有两个问题涉及处理AJAX和非AJAX URL之间的切换。

  • 如果我在http://example.com/foo/about/和我点击投票,它看起来像http://example.com/foo/about/#polls看起来并不很漂亮。理想情况下,我希望每个AJAX URL都只用主目录和散列来格式化,如http://example.com/foo/#about
    我应该通过强制实际(非AJAX)重定向到带有散列符号的索引页面来处理它,然后从那里加载它?

  • 另一个问题是相反的。如果我将http://example.com/foo/#about发送给Javascript禁用的人,或者如果有人链接到它并且僵尸程序抓取了该链接,是否有任何方法可以处理该问题以重定向到正确的非AJAX页面,或者这只是生活中不幸的事实我必须处理?

回答

0

如果您需要非javascript支持,我会将所有的url直接更改为页面。像http://example.com/foo/#abouthttp://example.com/foo/about/

然后,JavaScript可以拦截它,叫event.preventDefault()和“重定向”它#about,这将按照您的Ajax功能。

如果客户端没有javascript,它将会像往常一样去http://example.com/foo/about/

至于在http://example.com/foo/about/,JavaScript客户端不应该到达这里,因为它们将始终被重定向到主题标签。

0

1)如果您重定向到主页面,然后使用ajax加载关于页面,只是没有多大意义。你应该做的就是让所有事情都通过ajax工作:绝对不应该有http://example.com/foo/about/,只有http://example.com/foo/#about那么你只需在点击民意调查时更新散列和内容。

2)有没有办法避免,对不起。

相关问题