Mi piace il modo in cui il metodo di jQuery $ .ajax() permette di specificare richiesta URL:jQuery accodare params alla url
{
url: 'http://domain.com/?param=1',
data{
param2: '2'
}
}
$ .ajax() il metodo sarà (probabilmente) chiamata $ .param() sulla condizione dati e facoltativamente aggiungerlo all'URL fornito.
La mia domanda è: questo tipo di manipolazione dell'url è disponibile al di fuori della chiamata $ .ajax()?
Ad esempio, voglio aprire una finestra popup e vorrei costruire l'URL nello stesso modo in cui faccio con $ .ajax().
Ho scritto una funzione che fa questo, ma ho la sensazione che sto reinventare la ruota e la duplicazione funzione già esistente di 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;
}
grazie!
'Uncaught ReferenceError: serialize is not defined' - e sembra che tu stia ancora reinventando la ruota, solo in modo diverso. – Quentin
come è diverso il metodo 'getQueryStr' da jQuerys '$ .param()'? La mia domanda riguardava l'aggiunta di argomenti a un URL esistente che già contiene una stringa di query. 'Il metodo $ .ajax()' lo gestisce molto bene. – Karolis