JavaScript中如何向API发送带连字符的请求参数
问题原因
JavaScript 中使用点操作符访问、赋值对象属性时,要求属性名符合标识符命名规范:仅可包含字母、数字、下划线、$ 符号,不可包含特殊符号、不可用数字开头。你用到的属性名 Last-Name 包含连字符-,不符合规范,因此点操作符写法会触发语法错误。
正确解决方法
使用方括号语法包裹带特殊字符的属性名字符串即可,具体修改如下:
1. 赋值代码修改
inputArray.data.firstName = firstName; inputArray.data.secondOne = secondOne; inputArray.data.Third = Third; // 带连字符的属性使用方括号语法,属性名用引号包裹为字符串格式 inputArray.data['Last-Name'] = lastName;
2. 对象定义补充说明
如果你的初始inputArray定义时没有给带连字符的属性名加引号,也会触发语法错误,正确的定义写法如下:
var inputArray = { ...inputArray, data:{ ...inputArray.data, firstName:'', secondOne:'', Third:'', // 带连字符的属性名定义时也需要用引号包裹 'Last-Name':'', } };
修改完成后序列化inputArray提交给API,生成的JSON结构会正常携带Last-Name字段,完全符合入参要求。
内容的提问来源于stack exchange,提问作者John Ken
相关产品推荐
相关产品推荐

