2015-04-01 4 views
3

Как я могу сериализовать объект, не используя jQuery $.param?Как сериализовать объекты с angularjs

Я хочу, чтобы объект ниже:

var user = {username: 'ronald.araujo', password: '123456',}; 

иметь следующий вывод:

username=ronald.araujo&password=123456 

Есть предложения? Помня, что я сделал бы это с помощью Angularjs или чистого Javascript.

EDIT:

Я использую глагол "сохранить" ($ ресурсов) в angularjs. Как я могу задать заголовок «application/x-www-form-urlencoded» и сериализовать?

+0

Вы имеете в виду сериализацию его в формате 'application/x-www-form-urlencoded'? Здесь есть простая библиотека - https://github.com/iambumblehead/form-urlencoded – Phil

+0

Возможный дубликат [Как сделать данные POST с urlencoded с помощью $ http в AngularJS?] (Http://stackoverflow.com/questions/ 24710503/how-do-i-post-urlencoded-form-data-with-http-in-angularjs) – Phil

+0

В Angular afaik нет встроенного инструмента для этого. Но почему вы хотите это сделать? Вы можете отправить любой kinf запроса 'GET' без необходимости вручную добавлять данные в URL-адрес. – floribon

ответ

5

Чистый JavaScript может сделать это просто отлично:

function serializeObj(obj) { 
 
    var result = []; 
 

 
    for (var property in obj) 
 
     result.push(encodeURIComponent(property) + "=" + encodeURIComponent(obj[property])); 
 

 
    return result.join("&"); 
 
} 
 

 
var user = { 
 
    username: 'ronald.araujo', 
 
    password: '123456' 
 
}; 
 

 
var serialized = serializeObj(user); 
 
console.log(serialized); //username=ronald.araujo&password=123456

Ссылка на оригинальный ответ: How do I POST urlencoded form data with $http in AngularJS?

0

Вы можете использовать $httpParamSerializerJQLike;

.controller(function($http, $httpParamSerializerJQLike) { 
    //... 

var serializedUser = $httpParamSerializerJQLike(user); 

}); 

вы можете увидеть $httpParamSerializerJQLike документации here.

Смежные вопросы