Javascript 快速启用CORs标头仍会导致错误

Javascript 快速启用CORs标头仍会导致错误,javascript,node.js,google-chrome,express,cors,Javascript,Node.js,Google Chrome,Express,Cors,使用我添加到index.js文件中的 /*these first five line direct from http://enable-cors.org/.com*/ app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-

使用我添加到index.js文件中的

/*these first five line direct from http://enable-cors.org/.com*/
app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});




var PORT = 3333;
app.listen(PORT, function(){
  console.log('listening on port', PORT);
})

request({url: 'http://bl.ocks.org/mbostock/raw/4090846/us.json', json: true}, function(err, data){
  app.get('/us', function(req, res, next){
    console.log(req) //prints correctly
    res.json(data.body);
    });
});
localhost:3333/us正确显示json,但是从localhost:3000(browsersync提供的端口)发出请求失败,并出现错误

d3.min.js:1XMLHttpRequest无法加载localhost:3333/us。跨源请求仅支持协议方案:http、数据、chrome、chrome扩展、https、chrome扩展资源。


这不再是在express上为localhost启用CORS的正确方法了吗?我也尝试过传递
应用程序。使用
方法
'*'
'/us'
作为它的第一个参数,但没有运气。

我建议npm只安装“cors”作为依赖项。一旦你完成了这项工作,只需要和应用程序。在所有你想要允许CORS的路线之前使用它

//依赖关系
var cors=要求(“cors”);
//Init express应用程序
var-app=express();
应用程序使用(cors());
//路线现在允许cors

get('/api/endpoint',controllers.endpoint)进行Ajax调用时,需要一个包含协议的完全限定URL。这不是合法的URL:

localhost:3333/us
您可以在浏览器中键入它,浏览器会自动向其添加协议(浏览器会做各种事情,试图将您在URl栏中键入的内容转换为合法URl,但对于通过Javascript和Ajax发出的请求,这种逻辑不会发生)。相反,请将URL更改为:

http://localhost:3333/us

这是一条重要的线索:“跨源请求仅支持协议方案”请包括您发送此ajax请求所使用的代码,因为它显然不是http或https,这意味着它可能与您的服务器无关。@KevinB您是正确的。当我添加
http
时,我收到了
ERR\u连接被拒绝
,但我相信这是因为我打开了CORs chrome扩展。删除已消除错误的。谢谢