【发布时间】:2017-08-11 23:00:08
【问题描述】:
我正在尝试实现 OAuth2 身份验证。当我尝试发送授权码时出现此错误:
XMLHttpRequest 无法加载链接 1。 从链接1重定向到链接2 已被 CORS 策略阻止:请求需要预检,即 不允许跨域重定向。
我的 req/rsp 看起来像这样:
一般: 请求网址:link1 请求方法:OPTIONS 状态码:204 否 内容远程地址:
响应标头:HTTP/1.1 204 No Content X-Powered-By: Express 访问控制允许来源:* 访问控制允许方法: GET、HEAD、PUT、PATCH、POST、DELETE 访问控制允许标题: 内容类型,sessionid 日期:
请求标头:OPTIONS /authorize HTTP/1.1 主机:主机连接: 保持活动访问控制请求方法:POST 来源:origin_link 用户代理:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, 像壁虎)Chrome/56.0.2924.76 Safari/537.36 Access-Control-Request-Headers: content-type, sessionid Accept: / 引用者:origin_link/dialog 接受编码:gzip、deflate、sdch、br 接受语言:en-US,en;q=0.8
【问题讨论】:
-
如果您升级到 Chrome 57,则不应再点击“请求需要预检,不允许遵循跨域重定向”。错误。 (该规范过去要求浏览器禁止在预检中进行跨域重定向,但随后进行了更改,在 Chrome 56 发布后,Chrome 源代码已更新以符合当前规范要求。)
标签: javascript node.js oauth-2.0 cors http-redirect