Привет.
Есть приложение, которое для гогина поссылает запрос на другой сервер. Т.е. с адреса http://foo.bar.com идет запорс на http://bar.com
Оказалось, что это везде работает, кроме IE9
в IE запрос даже не посылается на сервер, а сразу ошибка access denied.
Гуглил, нагуглил решение:
-Теперь запрос POST на сервер отсылается. Но, почему-то не приходят параметры на сервер. Хотя, в дебаге вижу, что параметры уходят. Что делать?
Как научить ИЕ отслыать AJAX кросдоменный на сервер и не терять парметры?
Есть приложение, которое для гогина поссылает запрос на другой сервер. Т.е. с адреса http://foo.bar.com идет запорс на http://bar.com
Оказалось, что это везде работает, кроме IE9

Гуглил, нагуглил решение:
if ( window.XDomainRequest ) {
jQuery.ajaxTransport("+*", function( s ) {
if ( s.crossDomain && s.async ) {
if ( s.timeout ) {
s.xdrTimeout = s.timeout;
delete s.timeout;
}
var xdr;
return {
send: function( _, complete ) {
function callback( status, statusText, responses, responseHeaders ) {
xdr.onload = xdr.onerror = xdr.ontimeout = jQuery.noop;
xdr = undefined;
complete( status, statusText, responses, responseHeaders );
}
xdr = new XDomainRequest();
xdr.onload = function() {
callback( 200, "OK", { text: xdr.responseText }, "Content-Type: " + xdr.contentType );
};
xdr.onerror = function() {
callback( 404, "Not Found" );
};
xdr.onprogress = jQuery.noop;
xdr.ontimeout = function() {
callback( 0, "timeout" );
};
xdr.timeout = s.xdrTimeout || Number.MAX_VALUE;
xdr.contentType = "application/json";
xdr.open( s.type, s.url );
xdr.send( ( s.hasContent && s.data ) || null );
},
abort: function() {
if ( xdr ) {
xdr.onerror = jQuery.noop;
xdr.abort();
}
}
};
}
});
}
-Теперь запрос POST на сервер отсылается. Но, почему-то не приходят параметры на сервер. Хотя, в дебаге вижу, что параметры уходят. Что делать?

Решается использованием $HTTP_RAW_POST_DATA вместо $_POST.
Подробности — тут.