首页 > 解决方案 > 如何避免在 express.js auth 中间件中捕获 HTTP OPTIONS 请求

问题描述

好的,我有一个内置在 express.js 中的后端 API,它响应 AngularJS 中内置的 SPA。我正在使用令牌身份验证来验证客户端获取某些资源的访问权限。

我检查来自前端的传入请求是否具有包含不记名令牌的授权标头的方式是在我自己在 express.js 中制作的身份验证中间件中。

问题是 AngularJS 在实际获取请求之前发送了一个预检 OPTIONS reuqest,而 OPTIONS 是中间件捕获的第一件事,导致它拒绝请求,因为它没有承载令牌并停止执行。

问题是如何避免在我的身份验证中间件中捕获这个烦人的 OPTIONS 请求,而只捕获包含不记名令牌授权的实际获取请求。

这是从我的 angularJS 应用程序发送的 http 请求的代码

return $http(
            {
                method: 'GET',
                url:  API_URL,
                headers: {
                    'Authorization': 'Bearer ' + 'faketoken'
                }
            }
        )

标签: angularjsnode.jshttpexpresstoken

解决方案


这些数据包会发送到 L3 IP 地址吗?还是 L2 协议?


推荐阅读