相关疑难解决方法(0)

如何允许CORS?

我试图在我的Node.js应用程序中支持使用Express.js Web框架的CORS.我已经阅读有关如何处理此问题的Google小组讨论,并阅读了一些有关CORS如何工作的文章.首先,我这样做了(代码是用CoffeeScript语法编写的):

app.options "*", (req, res) ->
  res.header 'Access-Control-Allow-Origin', '*'
  res.header 'Access-Control-Allow-Credentials', true
  # try: 'POST, GET, PUT, DELETE, OPTIONS'
  res.header 'Access-Control-Allow-Methods', 'GET, OPTIONS'
  # try: 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept'
  res.header 'Access-Control-Allow-Headers', 'Content-Type'
  # ...
Run Code Online (Sandbox Code Playgroud)

它似乎不起作用.好像我的浏览器(Chrome)没有发送初始OPTIONS请求.当我刚刚更新资源块时,我需要将跨源GET请求提交到:

app.get "/somethingelse", (req, res) ->
  # ...
  res.header 'Access-Control-Allow-Origin', '*'
  res.header 'Access-Control-Allow-Credentials', true
  res.header 'Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS'
  res.header 'Access-Control-Allow-Headers', 'Content-Type'
  # ...
Run Code Online (Sandbox Code Playgroud)

它有效(在Chrome中).这也适用于Safari.

我读过......

在实现CORS的浏览器中,每个跨源GET或POST请求前面都有一个OPTIONS请求,用于检查GET或POST是否正常.

所以我的主要问题是,为什么在我的案例中似乎没有发生这种情况?为什么我的app.options块没有被调用?为什么我需要在主app.get块中设置标题?

node.js cors coffeescript express

609
推荐指数
17
解决办法
57万
查看次数

否'Access-Control-Allow-Origin' - 节点/ Apache端口问题

我使用Node/Express创建了一个小API并尝试使用Angularjs来提取数据,但是当我的html页面在localhost:8888上运行apache并且节点API在端口3000上侦听时,我得到了No'Access-Control-允许来源.我尝试使用node-http-proxy和Vhosts Apache但没有取得多大成功,请参阅下面的完整错误和代码.

"XMLHttpRequest无法加载localhost:3000.请求的资源上没有'Access-Control-Allow-Origin'标头.因此不允许来自"localhost:8888"."

// Api Using Node/Express    
var express = require('express');
var app = express();
var contractors = [
    {   
     "id": "1", 
        "name": "Joe Blogg",
        "Weeks": 3,
        "Photo": "1.png"
    }
];

app.use(express.bodyParser());

app.get('/', function(req, res) {
  res.json(contractors);
});
app.listen(process.env.PORT || 3000);
console.log('Server is running on Port 3000')
Run Code Online (Sandbox Code Playgroud)

rest node.js cors express angularjs

230
推荐指数
10
解决办法
28万
查看次数

app.use(cors()) 有什么作用?

我知道我们无法访问与我们的域不同的 API。但是,我看到很多人cors在 express 中安装模块以使用 API,然后像这样使用它:

app.use(cors());
Run Code Online (Sandbox Code Playgroud)

它实际上有什么作用?这个功能如何cors在服务器上启用?

javascript node.js express

4
推荐指数
1
解决办法
2307
查看次数

标签 统计

express ×3

node.js ×3

cors ×2

angularjs ×1

coffeescript ×1

javascript ×1

rest ×1