2
我有不同的域两种应用:foo.bar.com和bar.com 我尝试从第一域第二发送请求。对于这一点,我添加了一个过滤器到秒域的web.xml:Spring MVC的解析POST跨域请求错过参数
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>
而对于它的作品,除了IE浏览器所有浏览器。 对于IE我已经添加了特殊条件的firt服务器OB JS:
if ($.browser.msie && window.XDomainRequest) {
var xdr = new XDomainRequest();
xdr.open("POST", "http://bar.com/user/login");
var loginParam = get param here;
var passParam = get param here;
xdr.send("login=" + loginParam + "&password=" + passParam);
xdr.onerror = function() {
alert('in error');
};
xdr.onload = function() {
alert(xdr.responseText);
}
} else {
//Simple AJAX request
}
});
在此之后,我已经得到了我的服务器过滤器的要求! 但是我没有参数:登录和密码他们错过了。 我该怎么办?我如何在IE中执行跨域POST请求?
您如何验证登录名/密码未到达服务器?你可以做一个网络跟踪来查看实体HTTP请求中是否包含正文?另请阅读以下文章以了解IE的XDomainRequest的限制:http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx – monsur 2013-03-28 15:00:43
我有在IE控制台中调试,这两个params被正常地发送到服务器。比起,在Java应用程序中启动了我的调试,并且在请求中没有参数 – Andrew 2013-03-28 16:15:12
您可以包含IE中请求的外观快照吗?另外,你从哪里开始Java调试?在CORS过滤器之前,之中还是之后?在Java快照之前是否有任何过滤器或代码运行? – monsur 2013-03-28 20:34:44