我喜欢jQuery的$.ajax()方法允许指定请求URL的方式:
{
url: 'http://domain.com/?param=1',
data{
param2: '2'
}
}
$.ajax() 方法(可能)会在提供的数据上调用 $.param(),并可选择将其附加到提供的 URL 中。
我的问题是:这种类型的 URL 操作是否可以在 $.ajax() 调用之外使用?
例如,我想打开一个弹出窗口,并且希望像使用 $.ajax() 一样构造 URL。
我编写了一个函数来实现此操作,但我感觉自己正在重新发明轮子并复制 jQuery 中已经存在的函数:
var prepareUrl = function( url, data )
{
var params = $.param( data );
if ( params.length > 0 )
{
// url contains a query string
if ( url.indexOf( '?' ) > -1 )
{
// get last char of url
var lastChar = url.substr( url.length - 1 );
// Append & to the end of url if required
if ( lastChar != '&' && lastChar != '?' )
{
url += '&';
}
}
else // url doesn't contain a query string
{
url += '?';
}
url += params;
}
return url;
}
thanks!
getQueryStr
方法和 jQuery 的$.param()
有什么不同?我的问题是如何向已包含查询字符串的现有 URL 添加参数。$.ajax()
方法可以很好地处理这个问题。 - Karolis