2016-01-17 146 views
1

我有一個URL說abc.com/somecontroller?someparam=1呈現一個表單。在提交表單的形式發送到PARAMS /ajaxActionGrails獲取原始控制器的url

有沒有辦法,我能得到這個abc.com/somecontroller?someparam=1(即表格網址?)

我更感興趣的是從形式的URL得到someparam值。

PS:上述URL abc.com/somecontroller?someparam=1是動態生成的,所以我無法訪問它。 而request.forwardURI會給我/ajaxAction(即表單中action的URL而不是表單本身的url)。

編輯: 我無法控制窗體,因爲它也是動態的,用戶有數百個可供選擇的模板。每個模板都有不同的編號。領域。 所以,如果我更喜歡其他方式來獲取網址。

+0

'window.location.href'和'document.URL'應該可以幫助你在javascript中。 –

回答

1

爲什麼不在表單中使用javascript並使用GET參數添加到ajax請求數組中? (或者與生成表單的動作的url)

您可以從原始請求f.e中獲取它們。由this腳本。

+0

感謝您的回答,但是我已經知道了。 Pls chk編輯 – rahulserver

0

雖然呈現表單的GSP,你可以這樣做:

myaction.gsp

<html> 
<body> 
<!-- Your content --> 

<script> 
    var paramsString = '${params.collect { k, v-> "$k=$v" }.join​​​​​​​​​​​​​​​​​​​​​​("&")​​​ }'; 
</script> 
</body> 
</html> 

所以,當你GSP被渲染,在script標籤將有這樣的事情(對於URL abc.com/somecontroller?someparam=1&foo=2:現在

var paramsString = 'someparam=1&foo=2'; 

,在你的AJAX代碼,你可以通過這個字符串作爲查詢參數:

$.ajax({ 
    url: '/ajaxAction?' + paramsString 
    /* rest of the AJAX code */ 
}); 

現在,在你的Ajax控制器動作,你可以簡單地做params.someparam

編輯

好了,我才意識到,你不必我上面提到的任何東西GSP。簡單地做AJAX調用是這樣的:

$.ajax({ 
    url: '/ajaxAction' + location.search 
    /* rest of the AJAX code */ 
}); 

location.search會給你直接字符串:?someparam=1&foo=2

+0

我無法控制GSP的渲染,因此無法使用基於JavaScript的解決方案。 – rahulserver

+0

好的,所以你也沒有使用Javascript的控制權? –

0

我結束了使用閃存來存儲someparam

在我的控制器,它被用來呈現在abc.com/somecontroller?someparam=1我使用閃光爲:

flash.put("someparam", params.someparam) 

這工作作爲一個快速解決方法 問題。我覺得在我無法控制gsp的情況下,這樣做會很好。

如果有人發現任何問題,請發表評論,否則我會將此標記爲答案。