前端使用ajax发送数据遇到后端接口有{}的特殊字符的处理

1 篇文章 0 订阅
1 篇文章 0 订阅

1)问题:

在做前端项目的时候,遇到后端给的接口中含有特殊的字符{}。如下图所示:

 其中在这里power是我发送过去的数据,这个接口的意思就是前端发生过去的数据power作为后端的接口路劲。

前端使用ajax发送数据时会出现访问接口成功但是没有数据返回的问题:

 

2)问题原因查找

使用类似postman工具进行调试发现,接口成功和我使用ajax发生数据接口失败的不同点。

成功调用接口并返回数据的调试:

 调用接口成功但是不返回数据的接口:

 从上面失败和成功的接口对比,发现:

调试工具发生成功是因为将接口中的{power}直接转为前端发生的数据1,而我自己写的ajax发生数据好像接口并不能将{power}替换为1,而且发现我写的ajax接口在浏览器上请求的网址后面还有%7Bpower%7D这样的乱码。

 我猜这里是使用ajax进行发生数据,ajax传递的路径好像解码不了{}这样的特殊字符。

3)我的解决方法:

我发生过去的power只有1或2这两个值,1对应A接口,写2时对应的就是B接口,我直接将1或2写在接口的后面,并不发送power数据过去,我猜我发送的power应该是先放在接口的路劲上,后端并不是直接接受我发送的power数据,而是直接在接口路劲上进行截取获取power的数据,我改后的代码如下:

这样改我就调用接口成功并能够接收数据:

 

 

 所以如果接口上要前度传递什么数据过去,可以使用url拼接的方式去使用ajax发送数据,如果还有问题就先使用类似postman的网页调试工具,成功发生请求后和自己发生的请求进行对比看哪里不同。

4)我的思考:

因为我没学vue框架,不知道使用es6进行传递数据的话是不是传递的数据就可以放在接口的路径上,有大神有什么好的方法希望分享一下,谢谢。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小丞啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值