【问题标题】:enabling CORS in TOMCAT 7 servlets for post request在 TOMCAT 7 servlet 中为发布请求启用 CORS
【发布时间】:2017-06-24 18:42:42
【问题描述】:

我正在使用 tomcat 7 在 java (eclipse ee) 中的动态 web 项目上运行我的 servlet。 我在我的 web.xml 文件中添加了以下段落(来自https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter/Introduction):

<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>"

我正在尝试使用来自 chrome 的 post 请求,使用以下 angular js 代码:

app.controller("LoginControler", function($scope,$rootScope,$http) {
  $scope.submit = function () {
       $rootScope.ret = "clicked";
      var data = {
                CompanyName: $scope.CompanyName,
                UserName: $scope.UserName,
                Password: $scope.Password,

        };
        $http.post(URL, data).success(function(data, status) {
            $rootScope.ret = data;
        })
  }
});

我不断收到以下错误代码: “XMLHttpRequest 无法加载 http://localhost:8080/Project-FrontEnd/ServletUsers。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问“原点”。响应有 HTTP 状态码 403。”

我尝试了所有我能找到的解决方案,但没有任何帮助...请问任何人都可以解决我的问题吗?

【问题讨论】:

    标签: java angularjs eclipse tomcat servlets


    【解决方案1】:

    各位朋友,只有将tomcat从7版更新到8.5版才解决了原方案的问题。

    【讨论】:

      【解决方案2】:

      您需要为 CorsFilter 添加“Access-Control-Allow-Origin”值。现在 Tomcat 说从你的来源你不能访问这里。将此添加到 CorsFilter 配置中:

      <filter>
         <filter-name>CorsFilter</filter-name>
         <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
         //add below config
         <init-param>
              <param-name>cors.allowed.origins</param-name>
              <param-value>*</param-value>
          </init-param>
      
      </filter>
      
      <filter-mapping>
         <filter-name>CorsFilter</filter-name>
         <url-pattern>/*</url-pattern>
      </filter-mapping>
      

      因此,通过此配置,您可以确定允许来自哪些域的请求。您可以添加可以访问您的资源的逗号分隔域,而不是 *。

      【讨论】:

        猜你喜欢
        • 2015-08-27
        • 2014-11-09
        • 2018-08-07
        • 1970-01-01
        • 2017-05-20
        • 2018-07-18
        • 1970-01-01
        相关资源
        最近更新 更多