2013-09-24 3 views
0

Как я могу узнать/проверить возвращаемые данные из jquery ajax - это xml, html или простой текст?jquery ajax Как узнать данные возврата xml или html?

Например, у меня есть эти два типа данных, которые я хочу обрабатывать.

XML,

<?xml version="1.0"?> 
<xml><response><error elementid="accept_terms_conditions" message="Field 'Agree with Terms &amp; Conditions' needs to be filled."/></response></xml> 

HTML,

<form action="http://xxx/booking.php" method="post" enctype="multipart/form-data" class="item-form border-top-bottom"> 
... 
</form> 

JQuery,

$(".button-submit").click(function(){ 

    var form = $(this).closest("form"); 
    var url = form.attr("action"); 

    // Load the article into the object. 
    $.ajax({ 
     type: "POST", 
     //dataType: "html", 
     url: url, 
     data:form.serialize(), 
     context:$(".holder-form-book-online"), 
     async: false, 
     beforeSend: function() { 
      // 
     }, 
     success: function (returndata) { 

       if(returndata.isXML) alert("xml"); 
       if(returndata.isHTML) alert("html"); 

     } 

    }).fail(function() { 
      alert("error"); 
    }); 

    return false; 

}); 

Так,

if(returndata.isXML) alert("xml"); 
if(returndata.isHTML) alert("html"); 

Возможно ли это?

+1

'returndata.indexOf ("")> -1)'? – karthikr

+0

протестировал его. не работает ... :( – laukok

+0

что? http://jsfiddle.net/EhewJ/ – karthikr

ответ

1
var contType = returndata.getResponseHeader ("Content-Type"); 
if(contType == "") { // take it from here... } 
1

В функции complete в ваших $.ajax настройках вы можете получить заголовки ответа, как это так,

complete: function(data){ 
    console.log(data.getResponseHeader('Content-type')); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^