1

我如何知道/测试来自 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");

是否可以?

4

2 回答 2

2

在设置中的complete函数中,您$.ajax可以像这样获取响应标头,

complete: function(data){ 
    console.log(data.getResponseHeader('Content-type')); 
}
于 2013-09-24T16:49:27.433 回答
1
 var contType = returndata.getResponseHeader ("Content-Type");
 if(contType == "") { // take it from here... }
于 2013-09-24T16:49:20.163 回答