我在不同的域上有两个应用程序: foo.bar.com 和 bar.com 我尝试将第一个域的请求发送到第二个域。为此,我在第二个域中添加了一个过滤器到web.xml:
<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请求?
答案 0 :(得分:0)
我遇到了类似的问题。事实证明,对于IE8 / IE9,请求上的XDocumentRequest does not set the Content-Type header。它默认为text/plain
。
除非Content-Type设置为application/x-www-form-urlencoded
,否则Spring MVC等服务器框架不会绑定表单参数。因此,您需要在服务器上执行自定义操作以绑定表单参数。