Kar*_*lis 10 javascript ajax url jquery param
我喜欢jQuery的$ .ajax()方法允许指定请求url的方式:
{
url: 'http://domain.com/?param=1',
data{
param2: '2'
}
}
Run Code Online (Sandbox Code Playgroud)
$ .ajax()方法将(可能)在提供的数据上调用$ .param(),并可选择将其附加到提供的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;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
由于其他回复没有回答我的问题,我已经通过$.ajax()调用进行了一些测试,看看它如何将urls与param数据合并.
到目前为止我的发现:
?,$.ajax()则会附加'&'+$.param(data)$.ajax()将追加'?'+$.param(data)因此,如果我想保持我的url处理函数与$.ajax()它的方式一致,那么它应该类似于以下内容:
var addParams = function( url, data )
{
if ( ! $.isEmptyObject(data) )
{
url += ( url.indexOf('?') >= 0 ? '&' : '?' ) + $.param(data);
}
return url;
}
Run Code Online (Sandbox Code Playgroud)
我仍然想知道是否有内置的jQuery方法来执行此操作.
| 归档时间: |
|
| 查看次数: |
19531 次 |
| 最近记录: |