有一个java应用程序,它使用java,scala,playframework和maven。
jdk 11.0.14
play2 version 2.8.15
scala.version 2.12.15
play2.plugin.version 1.0.0-rc6-SNAPSHOT
sbt-compiler.plugin.version 1.0.0
应用程序.conf
play.application.loader = "loader.BasicApplicationLoader"
play.modules.disabled += "play.core.ObjectMapperModule"
play.modules.enabled += "modules.WebObjectMapperModule"
play.modules.enabled += "modules.StartUpModule"
play.modules.enabled += "modules.ClusterMonitoringModule"
play.modules.enabled += "com.kenshoo.play.metrics.PlayModule"
play.filters.enabled = [
"play.filters.gzip.GzipFilter",
"com.kenshoo.play.metrics.MetricsFilter",
"http.filters.ClusterStatusFilter",
"play.filters.cors.CORSFilter"
]
play.http.actionCreator = "http.BasicActionCreator"
play.http.requestHandler = "http.WebHttpRequestHandler"
play.http.errorHandler = "http.BasicErrorHandler"
server1.host="http://localhost:9000/"
server2.host="http://localhost:2000/"
server3.host="http://localhost:11000/"
play.filters.cors {
pathPrefixes = ["/"]
allowedOrigins = [${?server1.host}, ${?server2.host}, ${?server3.host}]
allowedHttpMethods = ["GET", "POST", "PUT", "DELETE", "OPTIONS"]
allowedHttpHeaders = ["Accept", "Origin", "Content-Type"]
exposedHeaders = ["X-TOTAL-PAGE-COUNT", "X-TOTAL-ELEMENT-COUNT"]
preflightMaxAge = 1 hour
}
response.delay.milliseconds=500
根据Play documentation这应该工作,但它没有,我得到的cors错误:
CORS策略已阻止从源“https://localhost:9000 "访问位于”https://localhost:8080“的XMLHttpRequest:请求的资源上不存在“Access-Control-Allow-Origin”标头。
到目前为止我都试了些什么?
我已经检查了服务器,我已经部署,如果使用的变量被正确解释,是的,他们是.我需要使用这样的变量,因为这个url的值在部署时根据环境需要在服务器上覆盖.
尝试在exposedHeader中添加访问控制允许来源,尝试在allowedHttpHeaders中添加,但没有成功。
1条答案
按热度按时间g6ll5ycj1#
所以,在发布这些问题后,我已经弄清楚了问题。
问题在于这些服务器值:
对于浏览器是源“http://localhost:9000”没有斜杠,这就是为什么差异。