我有一個由服務器生成的URL。在客戶端,我不知道URL是否是:http://url/parameter
或http://url/parameter?anotherPar=1
。使用重定向從jQuery使用數據
這個值是提供給JavaScript變量:
var theUrl = '{someURLgeneratedByTheServer}';
我想使用window.location.href
傳遞一些參數,但我不能只是做:
window.location.href = theUrl + '?someClientGeneratedParameter=value&secondParameter=value2';
因爲這將如果服務器生成的URL已經有一些查詢字符串參數,則無效。我知道當我使用jQuery的Ajax方法時,我可以使用options參數將數據對象傳遞給所需的查詢字符串參數,並且jQuery本身能夠決定它是否需要連接?或&,像這樣:
$.ajax({
type: "GET",
url: theUrl,
data: {someClientGeneratedParameter:'value', secondParameter:'value2'},
success: callback
});
有沒有一種方法,使使用jQuery的這CONCAT機制重定向調用location.href
過嗎? (類似下圖):
//supposition only, when theUrl equals 'http://url/parameter?anotherPar=1'
var finalUrl = $.getMyFinalUrl({url: theUrl,
data: {someClientGeneratedParameter:'value', secondParameter:'value2'}
});
window.location.href = finalUrl ;
是否有意義,或者我應該寫我自己的方法?
謝謝。 PS:在服務器+ C#上使用Asp.net MVC3。
這就是我想要的,'param'函數以及對indexOf進行自動驗證的功能。我想到jQuery會讓它可用,不僅在'ajax'和'post'方法中使用。謝謝! 我發現使用jQuery BBQ(http://benalman.com/projects/jquery-bbq-plugin/),我可能會做一些像'return $ .param.querystring(theUrl,$ .param(extraParameters ))'getURL'方法內。 我很欣賞。 關心, – ClayKaboom 2012-02-24 18:48:20