首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在查询字符串中发送javascript对象?

如何在查询字符串中发送javascript对象?
EN

Stack Overflow用户
提问于 2016-12-29 15:02:52
回答 1查看 3.1K关注 0票数 1

我希望在查询字符串中发送这个javascript对象,以便当服务器接收到它时,我可以将它用作一个对象。目前,我正在使用xhr请求:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        const xhr = new XMLHttpRequest();
        var params = {
            searchParams: {name: 'Joe'},
            sortParam: {name: -1},
            skip: 0,
            limit: 50
        };
        xhr.open('get', '/api/endpoint' + formatParams(params));
        xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        xhr.responseType = 'json';
        xhr.addEventListener('load', () => {
            if (xhr.status === 200) {
                ...
            }
            else{
                ...
            }
        });
        xhr.send();

其中formatParams函数如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const formatParams = ( params ) => {
    return "?" + Object
            .keys(params)
            .map(function(key){
                return key+"="+params[key]
            })
            .join("&")
};

在服务器上,我通过一个Express路由器接收请求,随后在MongoDB查询中使用这些参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const express = require('express');
const router = new express.Router();
router.get('/endpoint', (req, res) => {
    console.log(req.query.searchParams);
    ...
});

当前,服务器将req.query.searchParams显示为字符串。

对象对象

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-29 15:18:17

这里有几个问题:

  1. keyparams[key]应该是url编码的,您可以为此使用encodeURIComponent(...) (这是一个标准函数)
  2. 由于params[key]在两种情况下都是对象(searchParam,sortParam),所以字符串表示将是对象。相反,请尝试:return encodeURIComponent(key) + '=' + encodeURIComponent(JSON.stringify(params[key]))
  3. 在服务器端,您可能需要运行JSON.parse(req.query.searchParams)才能使对象返回。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41388403

复制
相关文章
javascript中遇到的字符串对象处理
在javascript中对参数处理: 1 <script> 2 function getParam() 3 { 4 urlInfo=window.location.href; //获取当前页面
Ryan-Miao
2018/03/13
1.4K0
JavaScript——字符串对象
为了方便操作基本数据类型,JavaScript还提供了三个特殊的引用类型:Srting、Number和 Boolean
岳泽以
2022/10/26
3630
JavaScript——字符串对象
查询字符串转对象
接下来给大家介绍一个封装的函数,可以通过这个函数将一个url地址中的查询字符串提取出来,并且转换为一个对象。
马克社区
2022/04/14
1.2K0
JavaScript 字符串(String) 对象
字符串的索引从零开始, 所以字符串第一字符为 [0],第二个字符为 [1], 等等。
陈不成i
2021/07/20
4680
如何在JavaScript中访问暂未存在的嵌套对象
JavaScript 是个很神奇的东西。但是 JavaScript中的一些东西确实很奇怪,让人摸不着头脑。其中之一就是当你试图访问嵌套对象时,会遇到这个错误
前端小智@大迁世界
2019/07/02
8.1K0
JavaScript 中的对象
JavaScript 中的对象,Object,可以简单理解成“名称 - 值”对(而不是键值对:现在,ES 2015 的映射表(Map),比对象更接近键值对),不难联想 JavaScript 中的对象与下面这些概念类似:
徐建国
2023/02/23
2.4K0
JavaScript 中的对象
javascript将字符串转为对象
javascript将字符串转为对象 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script> var keyword = window.location.search.substring(1); // 取查询字符串 var pos = keyword.indexOf('=');
用户1719978
2018/07/05
1K0
JavaScript中的内置对象--Number对象
JavaScript中的内置对象有以下6个: 1.Number对象 2.Boolean对象 3.Data对象 4.Math对象 5.String对象 6.Array对象 在JavaScript中,数字是一种基本的数据类型,同时JavaScript还支持Number这个对象,该对象是原始数值的包装对象。在必要的时候,JavaScript会自动地在原始数据和对象之间转换。 创建一个Number对象的2中不同方法: var num1=Number("123"); var num2=new Number("456"
八哥
2018/01/18
2.7K0
Javascript 中的对象拷贝
说到 javascript 中的对象拷贝,首先我们想到的是 Object.assign() ,  JSON.parse(JSON.stringify()) , 还有 ES6 的展开操作符[... ]
chuchur
2022/10/25
1K0
JavaScript 中如何打印对象
我们一般通过使用 console.log 把变量或者对象输出到浏览器的控制台(console)的方法调试 JavaScript 程序,但是在移动端开发 JS 程序的时候,就没有那么好方便,可以使用 console.log 的方式来调试,对于变量我们可以使用 alert 函数来输出进行调试,如果变量,使用 alert 函数的话,浏览器只会告诉你这个只是一个变量,而不能打印出里面的内容,非常不方便,于是整理总结如下的函数,能够将数组或者对象这类的结果一一打印出来,具体代码如下:
Denis
2023/04/15
2K0
javascript中json对象json数组json字符串互转及取值
今天用到了json数组和json对象和json类型字符串之间互转及取值,记录一下:
kirin
2020/10/30
4.8K0
如何在 ES 中实现嵌套json对象查询,一次讲明白!
实际的软件项目开发过程中,因为业务上的需要,我们的数据库表与表之间的结构是一对多的关系,以订单表与订单项表为例,在 mysql 数据库里面,他们的关系如下图:
Java极客技术
2022/12/04
9.2K0
如何在 ES 中实现嵌套json对象查询,一次讲明白!
Django中Q查询及Q()对象 F查询及F()对象
Django Q/F #1 环境 Python3.7.3 Django==2.0.6 #2 开始 #2.1 django F()表达式 每次获取times当前的值,再+1,这样需要将times值取出,存到内存中 obj = models.Test.objects.get(name="cox") obj.times = obj.times + 1 obj.save() 虽然 obj.times = F(“times”) + 1 看起来像常规的Python为实例属性赋值,但实际上它是一个描述数据库上操
Autooooooo
2020/11/09
7950
JavaScript中的函数、对象
JS中的函数 声明方式 方式一 function 函数名(){ 函数体 } 方式二 var 函数名=function(){ 函数体 } 方式三 var 函数名=new
时间静止不是简史
2020/07/24
2.7K0
JavaScript中的函数、对象
JavaScript 中的代理对象
JavaScript 支持 setter 和 getter 已经很长时间了。他们用带有 set 和 get 关键字的简单语法来拦截对象的属性访问和值的修改操作。
疯狂的技术宅
2020/02/26
1.1K0
JavaScript 中的代理对象
如何在js中创建对象
七夕临近了,没有对象的来创建一个吧 使用对象字面量: const o = { name: "zehan", greeting() { return `Hi, 我是${this.name}`; } }; o.greeting(); // "Hi, zehan" 使用构造函数: function Person(name) { this.name = name; } Person.prototype.greeting = function () { return `Hi, 我是
ZEHAN
2020/09/23
7.6K0
JavaScript中DOM查询封装函数
在JavaScript中可以通过BOM查询html文档中的元素,也就是所谓的在html中获取对象然后对它添加一个函数。
马克社区
2022/04/14
6310
如何在EDI系统中查询文件?
EDI系统为企业提供了可视化的界面,帮助企业管理业务数据,并且对收发的业务数据进行存档。您可以根据需求及时备份您的业务数据。EDI系统作为一款企业级软件,日常需要传输大量的文件,这些文件包含的数据量大并且各不相同,如何在EDI系统中快速地查询指定文件呢?今天就来一探究竟。
知行软件EDI
2021/06/17
1.8K0
如何在EDI系统中查询文件?
JavaScript 学习-11.字符串 String 对象
前言 JavaScript 中定义字符串可以用单引号或双引号,用于存储一系列字符。 字符串 声明一个变量的值是字符串类型,可以用单引号和双引号 var x ='hello world'; // 单引号 var y = "hello world"; // 双引号 如果字符串中有引号,可以用单双交替的方式 var a = "He is called 'yoyo'"; // 外双内单 var b = 'He is called "yoyo"'; // 外单内双 如果一个字符串中同时有单引号和双引号,那么此
上海-悠悠
2022/05/20
5320
JavaScript 学习-11.字符串 String 对象
点击加载更多

相似问题

如何在Typoscript中定义对象变量(如javascript)

10

Javascript:解析数组,如搜索查询字符串

33

Javascript对象,如函数

10

如何在JavaScript中查询对象?

54

使用Javascript发送查询字符串

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文