Tomcat 请求不';t通过访问控制检查:否';访问控制允许原点';请求的资源上存在标头

Tomcat 请求不';t通过访问控制检查:否';访问控制允许原点';请求的资源上存在标头,tomcat,backbone.js,spring-security,Tomcat,Backbone.js,Spring Security,我在示例应用程序中使用backbonejs。以前,我在nodejs上托管它,但是现在想在tomcat上运行它,但是这个更改在客户端浏览器上给了我一个错误。我搜索并发现要解决这个问题,crossdomain()必须设置为true。不知道我该如何处理这件事。我们非常感谢您在这方面提供的任何帮助 XMLHttpRequest cannot load http://localhost:8080/backbonejs/testpost. Response to preflight requ

我在示例应用程序中使用backbonejs。以前,我在nodejs上托管它,但是现在想在tomcat上运行它,但是这个更改在客户端浏览器上给了我一个错误。我搜索并发现要解决这个问题,crossdomain()必须设置为true。不知道我该如何处理这件事。我们非常感谢您在这方面提供的任何帮助

   XMLHttpRequest cannot load http://localhost:8080/backbonejs/testpost. 
    Response to preflight request doesn't pass access control check: 
No 'Access-Control-Allow-Origin' header is present on the requested resource.
 Origin 'null' is therefore not allowed access. The response 
had HTTP status code 403.
使用ajaxPrefilter,模型和集合如下

$.ajaxPrefilter( function( options, originalOptions, jqXHR ) {
      options.url = 'http://localhost:8080/backbonejs' + options.url;
    });
var Banks = Backbone.Collection.extend({
      url: '/testpost'
    });

    var Bank = Backbone.Model.extend({
      urlRoot: '/testpost'
    });
在express.js中:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});
在本机NodeJS服务器中:

res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
在express.js中:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});
在本机NodeJS服务器中:

res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");

我在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>

克斯菲尔特
org.apache.catalina.filters.CorsFilter
克斯菲尔特
/*

我在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>

克斯菲尔特
org.apache.catalina.filters.CorsFilter
克斯菲尔特
/*

也可以使用此。。。 这篇文章很方便 在tomcat服务器中不需要这样做。此外,在此之前,我没有使用addFilter。下面的代码足以解决此问题

    rootContext.setServletContext(container); 

             FilterRegistration.Dynamic corsFilter = 
container.addFilter("corsFilter", CORSFilter.class);

 corsFilter.addMappingForUrlPatterns(null, false, "/*");

也可以通过使用此。。。 这篇文章很方便 在tomcat服务器中不需要这样做。此外,在此之前,我没有使用addFilter。下面的代码足以解决此问题

    rootContext.setServletContext(container); 

             FilterRegistration.Dynamic corsFilter = 
container.addFilter("corsFilter", CORSFilter.class);

 corsFilter.addMappingForUrlPatterns(null, false, "/*");

在服务器端,您必须允许跨域。看一看:啊,没错,我认为您的后端是node.js。我在tomcat方面没有经验,但这应该对您有所帮助:在服务器端,您必须允许跨域。看一看:啊,没错,我认为您的后端是node.js。我在tomcat方面没有经验,但这应该可以帮助您: