【发布时间】:2016-11-11 21:25:03
【问题描述】:
我在 Heroku 上使用 Express 应用程序。我尝试从另一个 NodeJS 应用程序向它发出 RESTful 请求。
这是来自 Heroku 应用的 sn-p,名为 app.js:
var express= require("express");
app.get("/results",function(req,res){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");
});
这是我在本地运行的应用程序的 sn-p,local-app.js:
var request= require("superagent");
var req= request.get("http://url-to-app-js.com?query=1").set(
"Access-Control-Allow-Origin", "http://url-to-app-js.com",
"Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS",
"Access-Control-Allow-Headers", "Content-Type, Authorization, Content-Length, X-Requested-With"
);
req.end(function(err,res){
// do things
});
当我运行 local-app.js 时,我在浏览器控制台中收到此错误:esponse to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
我知道我可以在关闭某些安全设置的情况下运行浏览器 Chromium,但我需要能够在不这样做的情况下运行它。
我做错了什么?我如何解决它?
【问题讨论】:
-
你有没有得到这个工作?
标签: javascript node.js express heroku