摘要:在用Django开发接口的时候的,写了一个叫ping 的接口,调试了一天都是404是在把自己迷倒了,后面发现如果把接口名改成其他的就行了,在后续的眼前中发现chrome中去接口名ping才会这样。
奇怪现象复现
定义接口ping使用Chrome请求时自动补成ping/ 导致请求404. 用drf_ysag
奇怪问题的代码如下
使用chrome中使用drf_yasg与直接请求响应如下 ,在右图中可以看到服务器是识别到的请求时ping/
![]() | ![]() |
使用Chrome浏览器请求,我们也能看到URL中有ping的项,注意到细节是请求的后面多了个斜杠。尽管或请求的是ping,服务器也把它重定向到了ping。
后续的实验发现使用Edge就不会出现这样奇怪的现象。
![]() |
|
试出来的解决方案
既然发现Chrome浏览器自动吧ping 变成ping/ 那把url写成ping/ 这样改后 无论是chrome还是edge请求都能 正常响应
换个名字呢
我把ping换成qing还用之前的方式注册路由
然后 chrome正常响应 也没有自动变成qing/;太迷了 我折腾两天就这!!!