我在http://random-name.herokuapp.com的Heroku上有一个应用程序,用于向Mandrill发送电子邮件。但是,无论我是在localhost:5000
本地运行应用程序还是在Heroku上远程运行应用程序,我在尝试发送电子邮件时都会抛出以下错误:
XMLHttpRequest无法加载 https://mandrillapp.com/api/1.0/messages/send.json。回应 预检请求未通过访问控制检查:通配符' *' 不能用于“访问控制 - 允许 - 来源”#39;标题时 凭证标志是真的。起源' http://random-name.herokuapp.com'是 因此不允许访问。
关于此错误的Stack Overflow上有很多文档(请参阅CORS: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true),因此,我将快速标题设置为以下内容:
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "http://localhost:5000 http://random-name.herokuapp.com");
res.header('Access-Control-Allow-Credentials', true);
res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
但是,这似乎无法解决问题。我也无法在Mandrill的文档中找到任何有用的东西。我猜测我没有错误地指定标题,或者它们甚至没有被使用。有什么想法吗?
答案 0 :(得分:0)
Access-Control-Allow-Origin
采用单个值,而不是以空格分隔的列表。
您需要返回客户端在Origin
请求标头中发送的任何内容(测试以确保首先是您可接受的来源!)。