允许在mvc Web应用程序中使用跨域脚本

时间:2012-07-07 19:24:46

标签: tomcat spring-mvc cross-domain

我有一个Web应用程序,即时通讯使用spring mvc。 我需要允许跨域脚本(我需要一个我可以通过javascript访问外部化的Web服务)。 我写了一个crossdomain.xml,我把它放在WEB-INF文件夹下。这是我的crossdomain.xml

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

我搜索过并发现可以从此URL访问crossdomain.xml: “本地主机:8080 / crossdomain.xml的
问题是mvc正在将请求重新路由到主控制器(RequestMapping注释为“/”)。我如何使用弹簧mvc克服这个问题? 谢谢。

2 个答案:

答案 0 :(得分:1)

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

如果您想要使用javascript完成跨域xhr请求,您应该使用CORS或JSONP,请参阅此related question

CORS示例:

access-control-allow-origin: http://api.example.com
access-control-allow-credentials: true

JSONP示例(使用jQuery,需要服务器端支持):

$.ajax({
    type: "GET",
    url: "https://domain.com/jsonp-service",
    dataType: "JSONP"
});

答案 1 :(得分:0)

jax rs jersey实现和spring之间有一个特殊的集成。所有在这个博客中解释 Jersey Spring integration