angularjs - 在两台服务器中启用 cors 过滤器
问题描述
我在 nodejs 应用程序中有两台服务器。我将两台服务器http-server
用于静态 html 文件(即 index.html)和express
节点 API。现在我收到 CORS 过滤器错误。即使我在两台服务器上都启用了 cors 过滤器。
我已经尝试过这些组合。1. 使用中间件在 Node 服务器上启用它。即以下代码。
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");
res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
next();
});
并http-server
使用以下命令。
http-server --cors
我仍然收到以下错误。
我在这里猜测在两个服务器上启用都不起作用,因为两个资源将具有不同的 CORS 值。但是我该如何解决呢?任何帮助,将不胜感激。
查看开发人员工具中的网络选项卡,我可以看到 API 请求的以下内容。
Update-1 尝试过 cors 包
每次服务器重新启动时,我都尝试过以下代码示例。
app.use(cors());
还有这个。
app.use(cors());
app.options('*', cors());
而这个具有特定配置。
app.use(cors());
var whitelist = ['http://localhost:8080']
var corsOptions = {
origin: function (origin, callback) {
if (whitelist.indexOf(origin) !== -1) {
callback(null, true)
} else {
callback(new Error('Not allowed by CORS'))
}
}
}
app.options('*', cors(corsOptions));
每次我在输出控制台中得到相同的响应。
这些是路线。
module.exports = function(app){
app.get('/get_tuna/:id', function(req, res){
tuna.get_tuna(req, res);
});
app.get('/add_tuna/:tuna', function(req, res){
tuna.add_tuna(req, res);
});
app.get('/get_all_tuna', function(req, res){
console.log('###### ++++++++++ 2 - This is called first');
tuna.get_all_tuna(req, res);
});
app.get('/change_holder/:holder', function(req, res){
tuna.change_holder(req, res);
});
app.get('/api/get_available_vault_balance/', function(req, res){
/// --------- 3
console.log('VAULT >> API is called >>> :) ');
vaultbackendservice.get_available_vault_balance(req, res);
});
}
解决方案
推荐阅读
- javascript - 路由更改时的 React/Redux 重置状态
- ios - 由于 xcodebuild 失败退出代码 127,无法启动 WebDriverAgent
- oracle - 按查询分组 Rising ORA-00934 异常
- r - 使用 gtsummary 包将总 N 的 f 变量添加到 tbl_regression
- flutter - 如何在颤动的TextField中使用多种颜色
- c# - 检测何时进入焦点?
- gradle - 如何排除模块 cxf-rt-transports-http
- dictionary - 如何在 Clojure 中正确“过滤”映射?
- android - Android 重叠其他应用权限
- visual-studio - 我无法为我的项目库单击“打包”来发布它