没有 Express.js 的 node.js 上的 Access-Control-Allow-Origin
Posted
技术标签:
【中文标题】没有 Express.js 的 node.js 上的 Access-Control-Allow-Origin【英文标题】:Access-Control-Allow-Origin on node.js WITHOUT Express.js 【发布时间】:2014-09-26 16:48:02 【问题描述】:解决错误'No Access-Control-Allow-Origin'
所以我尝试为 Node.js 搜索 Access-Control-Allow-Origin,但我只能看到那些使用 Express.js api 的。
警告看起来很简单:在响应中添加标头“Access-Control-Allow-Origin”。
Origin http://localhost is not allowed by Access-Control-Allow-Origin
像上面的问题一样,我也可以看到很多答案都有 app.use 或 res.header 但是:
-
我不知道应用程序在哪里。来自
res.header 不适用于
http.createServer(function (req, res) "Something" );
我也试过了
res.writeHead(200, 'Access-Control-Allow-Origin': '*',
'Content-Type': 'text/html','Content-Length':data.length);
但不起作用。
我知道这个问题可以在客户端解决,比如 chrome 或 add on 的安全关闭选项。但我希望我的服务器在任何客户端上提供服务,这样用户就不需要对其进行任何设置。
【问题讨论】:
【参考方案1】:你应该阅读手册:
HTTP Node.js v0.10.30 Manual & Documentation
http.createServer(function (req, res)
res.setHeader("Access-Control-Allow-Origin", "*");
);
旁注:我猜应用程序主要来自var app = express();
。
【讨论】:
好像我以前试过一次,是的,不知道为什么,这也不起作用。我尝试在 req.on 的开头、中间和代码的末尾使用 ut res.setHeader。还尝试放在 res.write(data) 之前。 @TechNew 标头需要在响应的开头发送。可以验证标头是否真的没有通过您的浏览器开发控制台发送?以上是关于没有 Express.js 的 node.js 上的 Access-Control-Allow-Origin的主要内容,如果未能解决你的问题,请参考以下文章
没有 Express.js 的 node.js 上的 Access-Control-Allow-Origin
Node.js Express js在较大文件上提供静态文件的速度非常慢
如何使用 node.js 在 express.js 上使用 twitter api 显示最后 20 条推文?