如何将javascript json数据转换为x-www-form-urlencoded?

时间:2014-05-21 05:22:32

标签: javascript angularjs

我需要将数据发送到我的服务器,其内容类型为:

   'Content-Type': 'application/x-www-form-urlencoded'

这是我从AngularJS客户端获得的数据:

 user.loginData = {
        userName: "joe@joe.com",
        password: "smith++"
    };

有人可以通过告诉我如何转换userName和密码来帮助我 将此数据以urlencoded格式发送到我的服务器:

data: 'grant_type=password&username=' + username + '&password=' + password,

3 个答案:

答案 0 :(得分:1)

我找到了一个非常简单的解决方案:

encodeURIComponent(userName)

答案 1 :(得分:1)

This npm module 将对象转换为您想要的内容:

var formurlencoded = require('form-urlencoded');
var obj = {
  str : 'val',
  num : 0,
  arr : [3, {prop : false}, 1, null, 6],
  obj : {prop1 : null, prop2 : ['elem']}
};

console.log(formurlencoded(obj));
// str=val&num=0&arr%5B%5D=3&arr%5B%5D%5Bprop%5D=false&arr% 
// 5B%5D=1&arr%5B%5D=null&arr%5B%5D=6&obj%5Bprop1%5D=null&o 
// bj%5Bprop2%5D%5B%5D=elem 

console.log(formurlencoded(obj, {
  ignorenull : true,
  sorted : true
}));
// arr%5B%5D=3&arr%5B%5D%5Bprop%5D=false&arr%5B%5D=1&arr%5B 
// %5D=6&num=0&obj%5Bprop2%5D%5B%5D=elem&str=val 

答案 2 :(得分:-2)

您可以使用以下行设置内容类型

query: {method:'POST', headers: {'Content-Type': 'application/x-www-form-urlencoded'}}

您可以在此处查看小提琴链接Link