前端使用ajax发送数据遇到后端接口有{}的特殊字符的处理
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进行传递数据的话是不是传递的数据就可以放在接口的路径上,有大神有什么好的方法希望分享一下,谢谢。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)