java - 在 TOMCAT 7 servlet 中为发布请求启用 CORS

标签 java angularjs eclipse tomcat servlets

我正在使用 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>"

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

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” header 。因此不允许访问 Origin“null”。响应HTTP 状态代码为 403。”

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

最佳答案

您需要为 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>

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

关于java - 在 TOMCAT 7 servlet 中为发布请求启用 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42091246/

相关文章:

java - 如何使用集合读取和显示csv文件

javascript - 如何在 Angular JS 的 HTTP 获取 URL 中附加动态查询参数?

java - 不发布的服务模块在 Helios 中不起作用

java - Eclipse中的Java项目和Eclipse本身有什么区别?

javascript - 每个使用 ionic v1 和 angularjs 的页面中都有奇怪的点

java - android XML View 在Eclipse中不显示ToggleButton

java - 在java中将按钮的二维数组从一个类返回到另一个类

java - ReSTLet重用InputStream

java - 使用 WebDriver 无法通过 CSS 选择器找到 WebElement

javascript - 如何将变量传递给d3中的事件监听器方法