Мне нравится, как метод JQuery в $ .ajax() позволяет указать URL запроса:JQuery добавить Params к URL
{
url: 'http://domain.com/?param=1',
data{
param2: '2'
}
}
$ .ajax() метод будет (возможно) вызов $ .param() на условии данных и, возможно, добавить его к указанному URL-адресу.
Мой вопрос: этот тип манипуляций с URL доступен за пределами $ .ajax() call?
Например, я хочу открыть всплывающее окно, и я хотел бы создать URL-адрес таким же образом, как и с $ .ajax().
Я написал функцию, которая делает это, но у меня есть чувство, что я буду изобретать колесо и дублирующий уже существующую функцию 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;
}
спасибо!
'Uncaught ReferenceError: serialize не определен' - и похоже, что вы все еще изобретаете колесо, иначе. – Quentin
Как ваш метод getQueryStr отличается от jQuerys '$ .param()'? Мой вопрос заключался в добавлении аргументов в существующий url, который уже содержит строку запроса. Метод '$ .ajax()' обрабатывает это очень хорошо. – Karolis