简体   繁体   English

如何使用Express JS Router解决CORS重定向?

[英]How to solve CORS redirection with express js router?

I'm trying to implement OAuth2 authentication. 我正在尝试实现OAuth2身份验证。 When I try to send Authorization code I get this error: 当我尝试发送授权代码时,出现此错误:

XMLHttpRequest cannot load link1. XMLHttpRequest无法加载link1。 Redirect from link1 to link2 has been blocked by CORS policy: Request requires preflight, which is disallowed to follow cross-origin redirect. 从链接1到链接2的重定向已被CORS策略阻止:请求需要进行预检,不允许遵循跨域重定向。

My req/rsp looks like this: 我的要求/ RSS如下所示:

General: Request URL:link1 Request Method:OPTIONS Status Code:204 No Content Remote Address: 常规:请求URL:link1请求方法:OPTIONS状态码:204无内容远程地址:

Response Headers: HTTP/1.1 204 No Content X-Powered-By: Express Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET,HEAD,PUT,PATCH,POST,DELETE Access-Control-Allow-Headers: content-type, sessionid Date: 响应标头:HTTP / 1.1 204无内容X-Powered-by:Express Access-Control-Allow-Origin:* Access-Control-Allow-方法:GET,HEAD,PUT,PATCH,POST,DELETE Access-Control-Allow-标头:content-type,sessionid日期:

Request Headers: OPTIONS /authorize HTTP/1.1 Host: host Connection: keep-alive Access-Control-Request-Method: POST Origin: origin_link User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36 Access-Control-Request-Headers: content-type, sessionid Accept: / Referer: origin_link/dialog Accept-Encoding: gzip, deflate, sdch, br Accept-Language: en-US,en;q=0.8 请求标头:OPTIONS / authorization HTTP / 1.1主机:host连接:keep-alive Access-Control-Request-Method:POST来源:origin_link用户代理:Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 537.36(KHTML,如Gecko )Chrome / 56.0.2924.76 Safari / 537.36 Access-Control-Request-Headers:内容类型,会话ID接受: /引荐来源:origin_link / dialog接受编码:gzip,deflate,sdch,br接受语言:en-US,en ; q = 0.8

Maybe you have not configured express to accept CORS request. 也许您尚未将Express配置为接受CORS请求。

In a small project, I had to configure CORS request in an Express application. 在一个小项目中,我必须在Express应用程序中配置CORS请求。 My code was: 我的代码是:

// Enable CORS
app.use((req, res, next) => {
   res.header('Access-Control-Allow-Origin', '*');
   res.header('Access-Control-Allow-Methods', 'GET,POST,DELETE');
   res.header('Access-Control-Allow-Headers', 'Origin, X-Requested With, Content-Type, Accept');
   next();
});

app is a variable corresponding to an Express instance. app是与Express实例相对应的变量。

Moreover, I did find an npm package to set CORS request to an express app, but I have never used it: https://github.com/expressjs/cors 此外,我确实找到了一个npm包来将CORS请求设置为快速应用程序,但我从未使用过它: https : //github.com/expressjs/cors

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM