2013-03-18 50 views
1

我已經查看了關於SO的類似標題的問題,但還沒有找到具有相同問題的人。使用jQuery,我試圖做一個ajax請求,而不必指定整個url參數。例如,如果我在頁面www.foo.com/bar上並希望發送一個ajax請求到www.foo.com/bar/woot,我可以簡單地將url參數設置爲/bar/woot,這會導致請求www.foo.com/bar/woot - 聽起來不錯。在jquery ajax請求中使用當前URL(使用特定的ID)

但是,這適用於頁面bar位於站點根目錄的情況。在我的情況下,我在頁www.foo.com/users/1(我正在開發一個有多個用戶的RoR應用程序),並且想要發送一個請求到www.foo.com/users/1/bar。我認爲只需將url參數設置爲bar(沒有前面的/開始於根目錄)就可以工作,並且可以工作。當將url參數設置爲bar時,ajax請求被設爲www.foo.com/users/bar(顯然,忽略用戶標識/1/,我希望看到它夾在usersbar之間)。

我也用ruby-on-rails標籤進行了搜索,並沒有看到任何有關RoR特定問題的信息。我明顯可以通過將用戶標識傳遞給函數並將其簡單地插入到url中,即`url:「/ users /」+ user_id +「/ bar」來解決這個問題,但這很糟糕。

對我而言,奇怪的是,/1/絕對是url的一部分(如果我沒有弄錯),而不是像#1片段那樣不會成爲請求的一部分 - 那爲什麼呢?下降?

UPDATE
有簡單的方法來完成我想在jQuery的,如改變url參數window.location.href()+"/bar".href()電話會議將在當前的URL的/1/,但是我在想,如果有一個關於的解釋爲什麼只是爲url參數指定bar不包括在由ajax請求使用的構造url中。

任何想法?提前致謝!

+1

簡單的解決方案是不粘'在前面window.location.href',但實際上你應該用你的路由,以確定您資源的位置。 – travis 2013-03-18 17:32:20

+0

我明顯使用路由來指定資源的位置,'bar'是'users'資源的成員 - 這就是爲什麼我需要正確的ID。我的問題是客戶端而不是服務器端。 – MandM 2013-03-18 18:14:14

回答

0

這將工作。

var current_href = window.location.href() 
window.location.replace(current_href + '/bar') 

這將加載URL www.foo.com/users/1/bar

+0

我不想在瀏覽器中實際替換URL的當前位置,這是jQuery ajax請求的'url'參數。 'window.location.href()'_does_得到我想要的,但'window.location.replace()'有點關閉。 – MandM 2013-03-19 18:20:11

+0

另外,我更新了這個問題。首先,感謝您的答案,但問題更多的是建立'url'參數,這取決於提供給ajax請求的內容。 – MandM 2013-03-19 18:25:03

+0

根據你的更新,我的理解是,你正在嘗試發送一個** ajax **請求,其中你想通過相應的URL。所以我正確嗎? – 2013-03-19 18:32:33