今天在进行js开发的过程中出现了一个奇怪的问题,就是使用ajax向后端发送post请求时,在浏览器network中查看response时,显示400 bad request 并且请求方式变成get,因为本人不专前端,所以甚是疑惑,百般寻找答案无果,已经排除不是jsonp 跨域请求(据说js中跨域只能进行get请求,如果是post会将请求转化为get请求)
各种寻找后,看到一个极老的帖子,也是同样的问题,而且有一个网友也翻到了这个几年前的帖子,并且留了言,说是因为静态资源文件的url和后端服务url重名了,比如后端服务的url是 /api/v1/take_case, 前端静态资源文件夹路径是/api/v1/take_case/ 这样就会出现上面的问题,在后端url中加上一个 / ,post请求时也使用相应的url即可.
我的实际情况是django 的urls.py文件里 匹配的url 是 /api/v1/take_case/, 但是给到我的接口却是 /api/v1/take_case
在最后加上一个 / 后解决问题
具体原因到底是那一个,请自测