2012-01-02 31 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)有沒有辦法避免,對不起。

相關問題