继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

第一次遇见405报错,顺便看了看http协议

Caeser110
关注TA
已关注
手记 139
粉丝 30
获赞 154

最近在写项目的时候遇到了405报错,第一次遇见这个报错,所以对这个错误不是很理解,于是上网查了查,得到了个模糊的答案,比如:GET请求发给了POST的接口,或者POST请求发送给了GET接口。但是我还是不理解,我的报错是为什么产生的。所以本着先解决问题的想法,我先进行了代码的排查,既然是请求,我就对接口开始下断点,发送请求,进入断点,一步步调试,然而页面还是报错,代码上没有任何错误,该获取的值还是获取了,也没有错误。这时候我开始对前端的POST请求进行注释,从源头开始排查,注释掉了AJAX的部分,点击提交时,竟然出现了405,也就是说和该POST请求无关,这个时候,我就想到了,是不是前端的form表达帮我提交了一次,于是跳转到前端HTML页面上,发现button上有个type="submit"类型,而这个按钮放在了表单里,我删除了该按钮进行测试,发现不报错了,于是问题得到了解决。

回过头来,我对405进行了解读,下面看看非RFC的解释:

http://img2.mukewang.com/5d9144690001f39c05380565.jpg

方法不被允许。请求行中接收的方法是服务器识别的,但目标资源不支持。

这里解释的很详细了,然而RFC文档里解释的就更简单了

10.4.6 405 Method Not Allowed
The method specified in the Request-Line is not allowed for the resource identified by the Request-URI.
 The response MUST include an Allow header containing a list of valid methods for the requested resource.

可以说是疏忽导致的这个错误,还好很快找到了解决办法,没有耽误太多的时间。


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP