处理来自不同页面的Ajax URL?

时间:2012-01-02 19:10:29

标签: javascript jquery ajax

所以我的网站位于http://example.com/foo/(在目录下,主域名是其他内容)。

使用.htaccess,我已经设置了我的网页,因此网址看起来像http://example.com/foo/about/http://example.com/foo/polls/http://example.com/foo/registration/等。这很有效,网站加载很好,可以遍历没有任何Javascript问题。

现在,我想在导航中添加一些AJAX功能。如果我在http://example.com/foo/并点击“关于”的导航,则会将网址更改为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页面或者这只是一个生活中不幸的事实,我将不得不处理?

2 个答案:

答案 0 :(得分:0)

如果您需要非JavaScript支持,我会将您的所有网址直接更改为网页。与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客户端永远不应该到达这里,因为它们将始终被重定向到主题标签。

答案 1 :(得分:0)

1)如果你重定向到主页然后使用ajax加载那个没有多大意义的关于页面。你应该做的是让一切都通过ajax工作:首先应该只有http://example.com/foo/about/ http://example.com/foo/#about,然后你点击民意调查时只更新哈希和内容。

2)没有办法避免,抱歉。