tomcat - 在哪里启用cors?

标签 tomcat cors tomcat7

我有一个非常基本的问题。

我在 tomcat 服务器上托管了一个应用程序 www.myapp1.com。它依次调用托管在 myapis.com/api1 上的 apache 服务器上的 api。

加载页面时,它中断说明 -

XMLHttpRequest cannot load myapis.com/api1. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'www.myapp1.com' is therefore not allowed access. The response had HTTP status code 403.

我知道我必须启用 CORS。我的问题是我应该在哪个服务器上启用 CORS?应该是 www.myapp1.com 还是 myapis.com/api1

我尝试在 www.myapp1.com 上启用 CORS,这是一个 tomcat7.0.59 服务器,方法是将最小过滤器(如下)添加到/config/web.xml 文件并重新启动服务器。但是,它不起作用。我是否需要添加/配置其他任何东西?

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

url-pattern 中的通配符是否导致了问题?我需要做些什么来设置过滤器类吗?

我正在使用 chrome 进行测试。 请帮忙。

最佳答案

default value cors.exposed.headers""。添加此参数可以解决此问题。

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
  <init-param>
    <param-name>cors.exposed.headers</param-name>
    <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
  </init-param>
</filter>

关于tomcat - 在哪里启用cors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37581182/

相关文章:

vue.js - 从源访问 XMLHttpRequest 已被 CORS 策略阻止(Vue.JS 应用程序调用 Lumen 应用程序)

javascript - Yammer REST API CORS

java - 尝试将 Spring 应用程序部署到 Tomcat

tomcat - 无法访问 Solr 管理面板 - HTTP 状态 403

处理 .JS 文件的简单请求时 Tomcat 响应挂起

tomcat - 在 windows 中编辑 built.xml 以获取 tomcat 的路径位置

Eclipse:服务器上的 "Configured resource"是否为斜体(添加和删除...-对话框)

java - Tomcat 多个应用程序,ehcache 无法工作

tomcat - jsf 东西的 gzip 压缩

javascript - Google News API 给出错误 Uncaught SyntaxError : Unexpected token ')'