如何在 GET 请求中序列化查询的对象

How do I serialize an object for the query in a GET request?

本文关键字:序列化 查询 对象 请求 GET      更新时间:2023-09-26

我正在尝试在JavaScript中序列化一个对象,以便我可以在GET请求中查询它。

根据标准,正确的方法是:

function serialise(obj) {
    serialised = '';
    Object.keys(obj).forEach(function(key) {
        serialised += encodeURIComponent(key).replace(/%20/g, '+') + '=' + encodeURIComponent(obj[key]).replace(/%20/g, '+') + '&';
    });
    return serialised.slice(0, -1);
}
var queryString = serialise({key: 'value', key2: 'value2'});

encodeURIComponent对 URL 和 GET 请求中x-www-form-urlencoded安全的字符串进行编码(例如 https://www.google.com/search?key=value),除了它用%20而不是+替换空格,所以需要一个最后的.replace

使用 jQuery 执行此操作:

var obj = {'test' : 1, 'other' : 2};
console.log( $.param($obj) );