首页 文章

jQuery ajax函数中contentType和dataType之间的差异

提问于
浏览
103

我有以下Jquery回调函数,我对它有一点怀疑(我不太了解Jquery):

$("form.readXmlForm").submit(function() {
    // Riferimento all'elemento form che ha scatenato il submit 
    var form = $(this);
    // Variabile che contiene il riferimento al bottone clickato 
    var button = form.children(":first");

    $.ajax({        // Viene eseguita la chiamata AJAX 
        type: "POST", // Tipo di richiesta: POST 
        // URL verso quale viene inviata la richiesta
        url: form.attr("action"),    
        // Dati XML inviati: 
        data: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><javaBean><foo>bar</foo><fruit>apple</fruit></javaBean>", 
        // Tipo di media type accettabile dalla response: 
        contentType: "application/xml", 
        dataType: "text", 

        success: function(text) { 
            MvcUtil.showSuccessResponse(text, button); 
        }, 

        error: function(xhr) { 
            MvcUtil.showErrorResponse(xhr.responseText, button); 
        }
    });

正如您所看到的,此函数只是对后端执行AJAX请求,为此请求设置参数 .

我已经设置我向URL发送请求,请求是POST请求,并且我发送的数据是以下字符串:

“barapple”

我有些困难要了解 contentTypedataType 之间的区别

我认为 contentType 指定了HTTP响应中可接受的数据类型,是不是?

和dataType?说啥?我在HTTP请求中发送的数据类型?

在这种情况下是“文本”,因为我发送的文本字符串是rappresent XML代码?

2 回答

  • 68

    enter image description here

    用英语讲:

    • ContentType :将数据发送到服务器时,请使用此内容类型 . 默认值为 application/x-www-form-urlencoded; charset=UTF-8 ,对大多数情况都适用 .

    • Accepts :请求标头中发送的内容类型告诉服务器它将接受哪种响应 . 取决于 DataType .

    • DataType :您期望从服务器返回的数据类型 . 如果没有指定,jQuery将尝试根据响应的MIME类型推断它 . 可以 text, xml, html, script, json, jsonp .

  • 149

    来自documentation

    contentType(默认值:'application / x-www-form-urlencoded; charset = UTF-8')类型:字符串将数据发送到服务器时,请使用此内容类型 . 默认为“application / x-www-form-urlencoded; charset = UTF-8”,这在大多数情况下都适用 . 如果您明确地将内容类型传递给$ .ajax(),那么它将始终发送到服务器(即使没有数据发送) . 如果未指定charset,则使用服务器的默认字符集将数据传输到服务器;你必须在服务器端适当地解码它 .

    和:

    dataType(默认值:Intelligent Guess(xml,json,script或html))类型:String您希望从服务器返回的数据类型 . 如果没有指定,jQuery将尝试根据响应的MIME类型推断它(XML MIME类型将产生XML,在1.4 JSON中将产生一个JavaScript对象,在1.4脚本中将执行脚本,其他任何东西将是以字符串形式返回) .

    它们基本上与你认为的相反 .

相关问题