Tomcat 在mvc web应用程序中允许跨域脚本

Tomcat 在mvc web应用程序中允许跨域脚本,tomcat,spring-mvc,cross-domain,Tomcat,Spring Mvc,Cross Domain,我有一个web应用程序,我使用SpringMVC。 我需要允许跨域脚本(我需要外部化的web服务可以通过javascript访问)。 我编写了一个crossdomain.xml,并将其放在WEB-INF文件夹下。这是我的crossdomain.xml <?xml version="1.0" encoding="UTF-8"?> <cross-domain-policy> <allow-access-from domain="*" /> </cross

我有一个web应用程序,我使用SpringMVC。 我需要允许跨域脚本(我需要外部化的web服务可以通过javascript访问)。 我编写了一个crossdomain.xml,并将其放在WEB-INF文件夹下。这是我的crossdomain.xml

<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

我四处搜索,发现crossdomain.xml应该可以从以下URL访问: “localhost:8080/crossdomain.xml”
问题是mvc正在将请求重新路由到主控制器(RequestMapping注释为“/”)。如何使用spring mvc克服这一问题?
谢谢。

crossdomain.xml仅由flash使用,因此这可能不是您真正想要的

如果希望跨域xhr请求使用javascript完成,则应该使用CORS或JSONP,请参见

CORS示例:

access-control-allow-origin: http://api.example.com
access-control-allow-credentials: true
JSONP示例(使用jQuery,需要服务器端支持):


jax-rsjersey实现和spring之间有一种特殊的集成。所有的解释都在这个博客里

谢谢您的回复。当我使用数据类型:JSONP时,jquery ajax会返回一个错误。写json时也会发生同样的事情。问题是,我正在使用JAX-RS(jersey)将服务外部化,我读到JAX-RS中不支持jsonp,所以我搜索了一个过滤器,但没有找到一个可用的:)有什么建议吗?我找到了解决方案。spring和jersey之间有一种特殊的融合。实施之后,它起了作用。(最后我使用了JSONP)。谢谢。
$.ajax({
    type: "GET",
    url: "https://domain.com/jsonp-service",
    dataType: "JSONP"
});