首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CORS的LocomotiveJs的Rest。在本地机器上工作,而不是在Amazon或Heroku上工作。

使用CORS的LocomotiveJs的Rest。在本地机器上工作,而不是在Amazon或Heroku上工作。
EN

Stack Overflow用户
提问于 2014-02-06 22:36:00
回答 1查看 328关注 0票数 1

使用CORS的LocomotiveJs的Rest。在本地机器上工作,而不是在Amazon或Heroku上工作。

我使用LocomotiveJs做了一个REST,现在我尝试在它上启用CORS。我在"all“环境中添加了以下代码(config/ environment /all.js)。

代码语言:javascript
复制
this.use(function crossOrigin(req,res,next){
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With,Authentication");
    res.header("Access-Control-Allow-Methods","GET,POST,PUT,DELETE,OPTIONS");

    return next();
});

它在我的本地机器上工作,但是当我将它部署到Heroku或AWS时,当客户端发送OPTIONS命令时,我得到了一个404 Http错误。

为了隔离这个问题,我开发了一个简单的Express应用程序,代码如下:

代码语言:javascript
复制
var express = require('express');
var app = express();

app.all('*', function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With,Authentication");
  next();
 });

app.get('/test', function(req, res){
    res.set('Content-Type', 'application/json');
    res.send({ 'Hello' : 'World' });
});

var port = process.env.PORT || 5000;

app.listen(port);
console.log('Listening on port ' + port);

当部署到Heroku时,这个代码就可以工作了!

你们对为什么它在我的本地机器上工作而没有在服务器上工作有什么看法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-08 20:42:39

我找到了一个解决办法:

现在我使用的是连接中间件:https://github.com/troygoode/node-cors

然后,我更改了我的all.js文件,添加了以下行:

代码语言:javascript
复制
this.use(cors());

我把它部署在Heroku上,现在开始工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21615578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档