在快递中不能set.header

这东西已经困扰了我好几天了,而且我快要疯了……我无法为set.header('Access-Control-Allow-Origin')或其他任何头文件。 我需要这个来访问一个远程API。 我已经下载了铬Cors扩展,并启用时,一切正常。 当我禁用时,我得到了美丽的错误:没有“访问控制允许来源”标题出现在请求的资源。 原因' http:// localhost:8080 '因此不被允许访问。

我已经尝试了一些事情,甚至Cors NPM模块,仍然是一样的。

这是我的代码:

var express = require('express'); var app = express(); app.use('/dist', express.static(__dirname + '/dist')); app.use(function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE'); res.header('Access-Control-Allow-Headers', 'Content-Type'); next(); }); var port = process.env.PORT || 8080; app.get('*', function(req, res, next) { console.log(req.get('Access-Control-Allow-Origin')); res.sendFile(__dirname + '/dist/index.html'); }); app.listen(port); console.log('listen at ' + port); 

请检查这一点:

 var express = require('express'); var app = express(); function setHeaders(res, path, stat){ res.append('Access-Control-Allow-Origin', '*'); res.append('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE'); res.append('Access-Control-Allow-Headers', 'Content-Type'); } app.use('/dist', express.static(__dirname + '/dist', {setHeaders: setHeaders})); /*app.use(function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE'); res.header('Access-Control-Allow-Headers', 'Content-Type'); next(); });*/ var port = process.env.PORT || 8080; /*(app.get('*', function(req, res, next) { console.log(req.get('Access-Control-Allow-Origin')); res.sendFile(__dirname + '/dist/index.html'); });*/ app.listen(port); console.log('listen at ' + port); 

http://localhost:8080/dist/index.html您可以看到之前设置的所有标题

试试这也是:

  app.use(function(req, res, next) { res.setHeader('Access-Control-Allow-Origin', "*"); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, DELETE'); res.setHeader('Access-Control-Allow-Headers', 'authorization, content-type'); next(); }); 

这是我的标题是如何在铬扩展现场头…..

  GET /dist/index_bundle.js HTTP/1.1 Host: localhost:8080 Accept: text/css,*/*;q=0.1 Accept-Encoding: gzip, deflate, sdch, br Accept-Language: nb-NO,nb;q=0.8,no;q=0.6,nn;q=0.4,en-US;q=0.2,en;q=0.2 Origin: http://localhost:8080 Referer: http://localhost:8080/ User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 X-DevTools-Emulate-Network-Conditions-Client-Id: 54cfead4-1b26-46cd-8014-d16327ce17d7 HTTP/1.1 304 Not Modified Accept: * Accept-Ranges: bytes Access-Control-Allow-Headers: * Access-Control-Allow-Methods: * Access-Control-Allow-Origin: * Cache-Control: public, max-age=0 Connection: keep-alive Date: Thu, 25 Aug 2016 12:03:29 GMT ETag: W/"7ad28-156c157d898" Last-Modified: Thu, 25 Aug 2016 10:56:15 GMT Origin: * X-Powered-By: Express