我已经使用SAML2 Web SSO创建了服务提供程序。
我有一个带有Node JS服务器和React Js前端的应用程序,它们分别在单独的端口3000(节点)和3001(反应)上运行。
如果用户未通过身份验证(由cookie管理的身份验证),则节点上会有一条路由“ http://localhost:3000/app/login”重定向到sso登录页面。
但是,如果我尝试从前端调用api,则会收到CORS问题,如下所示:
从CORS策略阻止从原点“ Here”到“ http://localhost:3000/app”(从“ http://localhost:3001”重定向)的访问:没有“访问控制- Allow-Origin标头出现在请求的资源上。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”,以在禁用CORS的情况下获取资源。
我也尝试过这个solution,但没有成功。
答案 0 :(得分:0)
我在Web应用程序中使用express作为framewok的Web应用程序中出现此错误 然后我安装了npm cors node.js中可用的cors软件包 并在我的服务器端脚本中使用了它。
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
答案 1 :(得分:0)
似乎是您在尝试访问/ samlsso时遇到问题。如Tomcat documentation
中所述,要在org.apache.catalina.filters.CorsFilter
文件中启用repository/conf/tomcat/carbon/WEB-INF/web.xml
过滤器
如果要为Identity Server中托管的任何其他Web应用程序启用CORS标头(例如/authenticationendpoint
或/oauth2
),则必须在web.xml文件中执行相同的操作(以防万一)身份验证端点Web应用程序的路径也是这些Web应用程序的repository/deployment/server/webapps/authenticationendpoint/WEB-INF/web.xml
)。