Jquery Ajax, não está funcionando no Internet Explorer

Estou tentando fazer alguns ajax jQuery e funciona em Firfox e Chrome, mas não no Internet Explorer 9.

O código final terá que passar por subdomínios, e isso não funciona no IE com o transporte padrão.

Então, eu estou tentando criar um transporte personalizado para usar no Internet Explorer

Método 1

$.ajaxTransport("+*", function (options, originalOptions, jqXHR) {
    if (jQuery.browser.msie && window.XDomainRequest) {
        var xdr;
        return {
            send: function (headers, completeCallback) {
                // Use Microsoft XDR
                xdr = new XDomainRequest();
                xdr.open("get", options.url);
                xdr.onload = function () {
                    if (this.contentType.match(/\/xml/)) {
                        var dom = new ActiveXObject("Microsoft.XMLDOM");
                        dom.async = false;
                        dom.loadXML(this.responseText);
                        completeCallback(200, "success", [dom]);
                    } else {
                        completeCallback(200, "success", [this.responseText]);
                    }
                };
                xdr.ontimeout = function () {
                    completeCallback(408, "error", ["The request timed out."]);
                };
                xdr.onerror = function () {
                    completeCallback(404, "error", ["The requested resource could not be found."]);
                };
                xdr.send();
            },
            abort: function () {
                if (xdr) xdr.abort();
            }
        };
    }
});

Eu criei uma página de amostra simples para demonstrar a primeira técnica aqui:http://services.whygo.net/sendAjax.htm

Observe que, se você usar o transporte personalizado, o transporte normal falhará, a menos que você atualize

A ideia vem daqui:http://forum.jquery.com/topic/cross-domain-ajax-and-ie#14737000002203097

Isto não dá nenhuma mensagem de erro diferente de 'error' dentro do método 'error' chamado $ ajax, quando falhar. Eu recebo um 405 Method não permitido na aba 'Network' de if dev tools, mas o material do lado do servidor é executado.

Método 2 Eu também tentei outro método como descrito aqui:O subdomínio cruzado AJAX funciona no Chrome, não no IE

if ('XDomainRequest' in window && window.XDomainRequest !== null) {

    // override default jQuery transport
    jQuery.ajaxSettings.xhr = function() {
        try { return new XDomainRequest(); }
        catch(e) { }
     };
}

Isso pode ser encontrado aqui:http://www.whygo.net/sendAjax2.html

Neste eu realmente recebo 200 códigos na aba 'network' das ferramentas ie dev, mas não chamam o 'error' ou o 'success' parar de $ ajax.

Se eu colocar um timeout nesse segundo, ele retornará para a função 'error' com uma mensagem de 'timeout'.

questionAnswers(2)

yourAnswerToTheQuestion