我试图通过jQuery调用Sonar Web服务之一。由于通话是跨域进行的,因此通话在Chrome上失败,并显示以下错误: 所请求的资源上没有“ Access-Control-Allow-Origin”标头。 有谁知道如何在SonarQube服务器上启用CORS?我正在使用SonarQube 4.3。我什至尝试在sonarqube-4.3 \ web \ WEB-INF \ web.xml中添加过滤器,但没有帮助。任何帮助将不胜感激。
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
</init-param>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
</init-param>
<init-param>
<param-name>cors.support.credentials</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.preflight.maxage</param-name>
<param-value>10</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
谢谢,萨拉
小智 3
我也陷入了同样的问题。
要摆脱这个问题,只需在Sonar的文件中设置toresetUnhandledResponse的初始化参数即可。RackFilterfalseweb.xml
然后,无论您在服务器还是应用程序级别定义 CORS 过滤器,CORS 过滤器的设置都应该正常工作。
<filter>
<filter-name>RackFilter</filter-name>
<filter-class>org.jruby.rack.RackFilter</filter-class>
<init-param>
<param-name>resetUnhandledResponse</param-name>
<param-value>false</param-value> <!-- true (default), false or buffer -->
</init-param>
</filter>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1773 次 |
| 最近记录: |