Заставить ie7 принять ответ jquery.get как xml, несмотря на неправильные заголовки - PullRequest
1 голос
/ 17 мая 2009

Я хочу использовать веб-сервис, используя функцию get jquery. Между ними нет слоя, поскольку файлы javascript размещаются на том же сервере, на котором работает веб-служба.

Мой код прекрасно работает в Firefox, но в ie7 возникают проблемы. Я вполне уверен, что знаю ответ: в заголовке xml указано «text / html», и IE7, к сожалению, верит, что это правда.

Итак, что я могу сделать, чтобы помочь IE понять мой xml-ответ как xml? отливать / разобрать? * * 1005

XML:

<?xml version = "1.0" encoding = "UTF-8"?>
<find>
<set_number>005262</set_number>
<no_records>000005611</no_records>
<no_entries>000005611</no_entries>
<session-id>YGSNPECRDEJS4Y3U1A65HMTG9PYPI1UDY1PYNFN2RK4BCDGY2D</session-id>
</find>

Код (упрощенно, дополнение добавляется в отдельную функцию):

$(document).ready(
    function(){      
        $.get(
            "http://server/X?op=find&code=wru&request=arbetsliv&base=rik01",   
            function(data){ 
                $("#wru").append($('no_records',data).text());
            },"xml"
    ); 
});          

Ответы [ 3 ]

2 голосов
/ 17 мая 2009

Я имел дело с этой проблемой раньше. Единственный способ, который я нашел, чтобы решить это, это сделать ajax-вызов вручную, взять текст ответа, проанализировать его как документ DOM и затем использовать его.

1 голос
/ 12 марта 2013

Самый простой способ, который я нашел, это просто конвертировать результат, если это необходимо.

$.get(
    // all your parameters here
).done(function (data) {
    if (typeof data === 'string') {
        data = jQuery.parseXML(data);
    }
    // data is now a Document for you to use here
});
1 голос
/ 25 мая 2009

Мое решение:

$(document).ready(function(){
    $.ajax({
        url: "http://server/X?op=find&code=wru&request=biografier&base=rik01",
        success: function(data){
            var xml;
            if ($.browser.msie && typeof data == "string") {
                xml = new ActiveXObject("Microsoft.XMLDOM");
                xml.async = false;
                xml.loadXML(data);                
            } else {
                xml = data;
            }
            $("#wsa").append($('no_records',xml).text());
        }
    }); 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...