点击切换帐号登陆
帐号密码登陆

解析get请求时以对象方式提交的表单数据

# 1.解析get请求时以对象方式提交的表单数据

**知识点**
1. 对象遍历:`for ~ in `
2. 参数编码: `encodeURIComponent()`

-----------------------------------------------------

## 1. 对象遍历
- `for ~ in `
- 过滤掉原型继承与方法属性

-----------------------------------------------------

## 2. 参数编码
- `encodeURIComponent()`
- 对URL中的参数部分进行编码处理

-----------------------------------------------------

```html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>解析get请求时以对象方式提交的表单数据</title>
</head>
<body>

<script>
    // 在前后端的交互过程中,表单中的数据,大多是以对象方式表示
    let data = {
        name: 'admin',
        age: 30,
        course: 'javascript'
    };

    // 转换成: name=admin&age=30&course=javascript

    function encodeFormData(data) {
        if (!data) return '';

        let pairs = []; // 配对容器

        for (let name in data) {
            // 过滤掉继承属性和函数属性,确保是自有属性,且没有方法(即函数类型的属性)
            if (data.hasOwnProperty(name) && typeof data[name] !== 'function') {
                // 将值转为字符串
                let value = data[name].toString();
                // encodeURIComponent()对URL中的键值对进行编码
                name = encodeURIComponent(name.replace('%20', '+'));
                value = encodeURIComponent(value.replace('%20', '+'));
                // 将转换好的键值对,存入容器中
                pairs.push(name + '=' + value);
            }
        }
        return pairs.join('&'); // 将键值对之间用'&'拼接后返回
    }

    let params = encodeFormData(data);
    console.log(params);

</script>
</body>
</html>
```


任务

?不会了怎么办
无数据提示暂无评论哟...我要评论
网站导航
标签地图
学习路径
视频教程
开发软件
旗下子站
php中文网
phpstudy
技术文章
文档工具
关于我们
企业合作
人才招聘
联系我们
讲师招募
QQ交流群
QQ官方交流群
微信公众号
微信公众号