jQuery 1.5.2 отображает [объект XMLDocument] для пустых ответов - PullRequest
5 голосов
/ 20 апреля 2011

У меня есть URL-адрес, из которого я могу получить строку

Если строка ответа содержит что-то, все идет хорошо, но (не дай бог!), Если результатом будет пустая строка типа "" jQuery 1.5.2 отобразит его как [объект XMLDocument]

следуйте кодам plz:

 $.post('/Applicant/RequestedJob/IsThereActivePeriod',{},
    function(data){     
        if(data == '' ) 
        {
                //do something here!
        }
        else 
        {
            console.log(data.toString());
            // [object XMLDocument]  will be printed in console.
        }        
});

Возможно, я должен упомянуть, что раньше он прекрасно работал на jQuery 1.4.4 любая идея?

С уважением:)

1 Ответ

9 голосов
/ 20 апреля 2011

Вы должны установить ожидаемый dataType ответа в вашем вызове ajax, например:

$.post('/Applicant/RequestedJob/IsThereActivePeriod',{},
    function(data){     
        if(data == '' ) 
            openDialog('/Applicant/RequestedJob/AddRequestedJobWindow','pnlRequestedJob','Request Window'); 
        else 
        {
            msgbox.show(data.toString(),'Error', msgBoxButtons.okOnly); 
            console.log(data.toString());
        }
    },
    'html'
);

Без этого jQuery пытается вывести тип ответа, согласно этому :

По умолчанию: Intelligent Guess (xml, json, script или html).

При отсутствии возвращаемого содержимого это, очевидно, угадывание XML.Передавая html в качестве dataType, вы заставляете jQuery интерпретировать ответ как HTML и сохранять результат в виде обычного текста.

Согласно некоторым комментариям, соответствующий заголовок типа контента должен позволять jQueryсделать вывод, что вашей пустой строкой является HTML, и получить тот же результат без явной установки ожидаемого dataType в вызове ajax.

Причина, по которой вы получаете [object XMLDocument], заключается в том, что data является объектом документа XML,вызывается toString ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...