我一直在为npm cors
https://www.npmjs.com/package/cors
var express = require('express')
var cors = require('cors')
var app = express()
var whitelist = ['http://example1.com', 'http://example2.com']
var corsOptions = {
origin: function (origin, callback) {
if (whitelist.indexOf(origin) !== -1) {
callback(null, true)
} else {
callback(new Error('Not allowed by CORS'))
}
}
}
首先,这似乎运作良好,但后来我想...
这仅适用于post
方法而非get
方法..
get
将返回错误....
我想要做的是......我有一个不同的后端api,它有get
和post
方法。
我使用另一个来从此api调用get
和post
方法。
例如,前端使用example.this-one.com
并尝试将get
/ post request
发送至example.that-two.com
,如上所述post
有效,但不是get
< / p>
我从文档中尝试了一些其他方法,但get
可以使用,但它会公开,任何人都知道url
将能够查看{{1}的数据1}},但我想设置只有get
才能获得example.this-one.com
有人可以给我一些建议吗?
提前致谢。
答案 0 :(得分:-1)
由于服务器为http://example.that-two.com
,请将客户端(http://example.this-one.com
)放在白名单
var whitelist = ['http://example.this-one.com']
var corsOptions = {
origin: function (origin, callback) {
if (whitelist.indexOf(origin) !== -1) {
callback(null, true)
} else {
callback(new Error('Not allowed by CORS'))
}
},
methods: ['GET']
}
这将允许来自GET
http://example.this-one.com
次请求
然后调用中间件:
app.use(cors(corsOptions));
答案 1 :(得分:-1)
以下代码对我有用:
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With,Content-Type, Accept");
next();
});