跨域后无法拿到Authorization
发布于 7 年前 作者 bringtree 6790 次浏览 来自 问答

express 中的cors配置

app.use(cors({ origin: ‘http://localhost:8080’, methods: [‘GET’, ‘POST’, ‘OPTIONS’], ‘Access-Control-Allow-Credentials’:true, credentials: true, allowedHeaders: [‘Access-Control-Allow-Headers’, ‘Content-Type’, ‘Authorization’, ‘authorization’, ‘Cookie’, ‘Set-Cookie’] })); 响应中有1.png 但是不能通过js 这些拿到 这个Authorization 2.png 求大神指点 要怎么修改

10 回复

cors 这个要怎么配置 ? 才能运行浏览器 去搞

如果你没用jquery https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getResponseHeader 如果你用了jquery https://stackoverflow.com/questions/11440918/jquery-get-ajax-response-headers 如果你用别的库发ajax请求,找找看如何获得xhr对象的引用,然后xhr.getReponseHeader() 如果你贴的截图实际是一个OPTIONS请求 https://github.com/expressjs/cors#enabling-cors-pre-flight 可能是无解的,我不知道你服务器怎么配的。 Authorization应该从非OPTIONS请求响应种返回。

我按别人 这样写也不行

res.header('Access-Control-Allow-Origin', 'http://localhost:8080');
res.header('Access-Control-Allow-Credentials', 'true');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Cookie, Set-Cookie');
res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');

哦 还有 以上的话 如果 我把前端 用 webpack 的Proxytable 可以解决 但是 现在要用 cros

自己解决了 有个expose 的要设置。。。一直以为是 暴露 结果原来是允许操作的意思

我也遇到这个问题最近,具体expose 怎么设置的啊老哥,能再说清楚点吗?

搜索cors expose 。然后会找到一个expose headers的 把你要操作的头 放进去就好了 @@singcl

回到顶部