没有 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 的区别

Node.js Express js在较大文件上提供静态文件的速度非常慢

如何使用 node.js 在 express.js 上使用 twitter api 显示最后 20 条推文?

会话如何在 Express.js 和 Node.js 中工作?

Node.js/Express.js 会话管理 cookie 为会话 cookie