gpt4 book ai didi

javascript - 使用数据从 jQuery 重定向

转载 作者:行者123 更新时间:2023-11-30 09:00:52 25 4
gpt4 key购买 nike

我有一个由服务器生成的 URL。在客户端中,我不知道 URL 是:http://url/parameter 还是 http://url/parameter?anotherPar=1

此值可用于 javascript 变量:

  var theUrl = '{someURLgeneratedByTheServer}';

我想使用 window.location.href 传递一些参数,但我不能这样做:

  window.location.href = theUrl + '?someClientGeneratedParameter=value&secondParameter=value2';

如果服务器生成的 URL 已经有一些查询字符串参数,这将是无效的。我知道,当我使用 jQuery 的 Ajax 方法时,我可以使用选项参数将数据对象与所需的查询字符串参数一起传递,并且 jQuery 本身能够决定它是否必须与 ?或者 &,像这样:

   $.ajax({
type: "GET",
url: theUrl,
data: {someClientGeneratedParameter:'value', secondParameter:'value2'},
success: callback
});

有没有办法在调用 location.href 之前使用 jquery 的这种 concat 机制进行重定向? (如下所示):

//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:在服务器上使用 Asp.net MVC3 + C#。

最佳答案

这样的事情怎么样?把demo代码扒出来,很简单,让你数组传参:

function getURL(theUrl, extraParameters) {
var extraParametersEncoded = $.param(extraParameters);
var seperator = theUrl.indexOf('?') == -1 ? "?" : "&";

return(theUrl + seperator + extraParametersEncoded);
}


// Test1
var theUrl1 = "http://example.com/test"
var extraParameters1 = {
"someClientGeneratedParameter": "value",
"secondParameter": "value2"
};
alert(getURL(theUrl1, extraParameters1));

// Test2
var theUrl2 = "http://example.com/?test=test"
var extraParameters2 = {
"someClientGeneratedParameter": "value",
"secondParameter": "value2"
};
alert(getURL(theUrl2, extraParameters2));

输出:

http://example.com/test?someClientGeneratedParameter=value&secondParameter=value2 http://example.com/?test=test&someClientGeneratedParameter=value&secondParameter=value2

fiddle :http://jsfiddle.net/gjuqG/

关于javascript - 使用数据从 jQuery 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9435002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com