Node.js 设置锯齿资源管理器时被CORS策略问题阻止

Node.js 设置锯齿资源管理器时被CORS策略问题阻止,node.js,hyperledger-sawtooth,hyperledger-explorer,Node.js,Hyperledger Sawtooth,Hyperledger Explorer,我设置锯齿赛斯使用。在设置锯齿赛斯后,我试图将其连接到。sawtooth seth和sawtooth explorer都在docker上成功运行。但sawtooth explorer并没有和sawtooth seth连接。我收到以下cors策略阻止错误 Access to XMLHttpRequest at 'http://localhost:8080/transactions?limit=10' from origin 'http://localhost:4200' has been bloc

我设置锯齿赛斯使用。在设置锯齿赛斯后,我试图将其连接到。sawtooth seth和sawtooth explorer都在docker上成功运行。但sawtooth explorer并没有和sawtooth seth连接。我收到以下cors策略阻止错误

Access to XMLHttpRequest at 'http://localhost:8080/transactions?limit=10' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
explorer.component.ts:210 Error fetching items from API (transactions):  
请帮助我修复此错误。

如果您尝试通过sawtooth explorer获取事务,则Docker容器中的Nginx将出现“坏网关502”错误

为了解决CORS传递http代理的问题,您需要在nginx.conf文件中定义端口,以便将GET请求发送到Docker容器中的nginx端口

例如,如果您的Sawtooth rest api连接到端口8024,那么您可以将Sawtooth explorer rest api代理配置为同时使用nginx.conf文件中的端口8024来传递http代理

下面是RESTAPI的docker-compose.yaml文件的摘录

docker-compose.yaml
restapi:
图:hyperledger/sawtooth rest api:1.0
容器名称:提供RESTAPI
揭露:
- 8008
端口:
- '8024:8008'
取决于:
-验证器
入口点:|
锯齿休息api-vv
--连接tcp://validator:4004
--绑定RESTAPI:8008
sawtooth explorer在docker文件夹中具有相关的nginx配置

nginx.conf
服务器{
听8090;
添加标题Pragma no cache always;
添加_头访问控制允许原点*;
添加_头访问控制允许方法'GET,OPTIONS';
添加_头访问控制允许头“X-XSRF-TOKEN,DNT,用户代理,X-Requested-With,如果修改自,缓存控制,内容类型,范围”;
地点/{
#代理通行证http://localhost:8008;
代理通行证http://192.168.3.10:8024;
代理读取超时5000;
代理设置头升级$http\U升级;
代理设置头连接$Connection\u升级;
}
}