我正在尝试实现一个简单的拦截器,它允许我在我的Angular应用程序中显示"无法联系服务器"的消息.但是,由于API位于不同的主机上,我正在处理CORS飞行前OPTIONS请求.
我发现如果API不可用,Chrome开发工具会503在OPTIONS请求中显示,但Angular的$http拦截器会捕获404对后续GET请求的响应.我相信这是因为OPTIONS响应不包含所需的CORS头,因此GET实际上从未执行过.
有可能拦截OPTIONS回应吗?如果我看到的只是一个404我无法区分"服务器关闭"和"没有这样的资源".
您无法通过设计拦截此请求 - 浏览器正在“检查”您,确保您应该被允许发出请求。
我们使用了三种解决方案来解决这个问题: