面试题:你印象最深刻的两个bug是什么,你是怎么解决的?
在面试的时候,很多时候面试官都会问你这个问题,如果你没有准备或者最近没有在做项目的话,你短时间是很难想起你遇到的bug的。毕竟在做项目的时候遇到的问题会有很多,有些bug可能会卡你两天,或者更久。但是如果你不做记录,你过段时间就会把整个印象深刻的bug给想出来。想不出来,你这道面试题就会答得不好,这多少是会影响你的面试成绩的。最近我面试的时候就遇到这样一个问题,当时我想了很久都没想出来,后面答得自然也不是很好,回答的比较宽泛和笼统。所以我就写了这篇博客来记录一下我回想起来的一些bug。
1、http响应码403问题
当时这个问题卡了有点久,403错误就是浏览器禁止你跨域访问。为了解决这个问题,我在网上查了很多资料,而且得到了很多解决方案,主要的解决方案可以归为三种,分别为jsonp,nginx和cors。
- Jsonp
最早的解决方案,利用script标签可以跨域的原理实现。
限制:
- 需要服务的支持
- 只能发起GET请求
- nginx反向代理
思路是:利用nginx把跨域反向代理为不跨域,支持各种请求方式
缺点:需要在nginx进行额外配置,语义不清晰
- CORS
规范化的跨域请求解决方案,安全可靠。
优势:
- 在服务端进行控制是否允