Общая (т.е. без какой-либо JS-инфраструктуры) ...
var o = {'name': 'John', 'surname': 'Smith'};
var q = [];
for (p in o) {
if (o.hasOwnProperty(p)) {
q.push( encodeURIComponent(p) + "=" + encodeURIComponent(o[p]) );
}
}
q = q.join("&"); // "name=John&surname=Smith"
Как уже отмечали в комментариях, это будет работать только для плоских, не вложенных объектов.Для расширенного использования я настоятельно рекомендую выполнить HTTP-пост-операцию и отправить объект без изменений в виде строки JSON.
Все библиотеки JS предоставляют способ преобразования объекта в JSON, и существуют другие способы сериализации объекта, например, собственная реализация Дугласа Крокфорда в http://json.org/js.html.