2012-08-03 31 views
1

我試圖執行重定向到Javascript中的不同頁面,並且還爲該重定向設置了請求屬性。使用Javascript重定向並設置請求屬性

我不想一個請求參數,像這樣:

window.location.href="www.somesite.com/id=123" 

,因爲我不希望用戶看到地址欄傳遞的價值。

我看到的一種方式是在隱藏字段的頁面中創建表單並設置字段並從Javascript提交表單。

有沒有更簡單的方法?

謝謝...

+1

JavaScript中沒有'POST'重定向。您需要使用XMLHttpRequest對象或類似的類似於(a)的同步請求,例如jQuery的'.ajax'方法,但這不會導致重定向。只需使用'

'。 – Zeta 2012-08-03 14:37:22

+1

你可以設置一個cookie,然後重定向 – 2012-08-03 14:38:19

+0

謝謝你的提示:) – machinery 2012-08-06 13:04:36

回答

3

使用窗體並通過window.onload發佈。

<form method="post" id="myForm" action="/someurl"> 
<input type="hidden" name="param" value="X" /> 
</form> 

<script> 
window.onload=function(){ document.getElementById('myForm').submit(); } 

你就完成了。

+0

@alphamale:**我很抱歉不同意,但你肯定可以使用JavaScript發佈數據。**上面的例子完美地按預期工作。 – Lupo 2012-08-03 14:51:32

+0

我希望能有其他的方式來完成它,但是在Javascript中提交一個POST方法形式(就像你的例子)是我最終做到的。謝謝:) – machinery 2012-08-06 12:57:58

1

您不能使用javascript發佈數據。 ..您可以使用ajax來做到這一點。或者你可以使用這樣的事情在你的javascript達到你所想:

var post_url = 'http://www.somesite.com/id=123'; 
var form = $('<form action="' + url + '" method="get">' + 
'<input type="hidden" name="id" value="123" />' + 
'</form>'); 
$(form).submit(); 

希望這有助於。

+1

謝謝:)這也是一個有趣的提示。正如盧波所說,在這種情況下可以使用POST方法。我在這裏發現了對這種方法的更詳細的描述:http://forrst.com/posts/JavaScript_redirect_with_POST_params-u0M(發佈鏈接,可能對某人有幫助。 – machinery 2012-08-06 13:00:07