小编典典

jQuery ajax函数中contentType和dataType之间的区别

ajax

我有以下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”

我很难理解 contentType*dataType有 什么区别 *

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

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

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


阅读 362

收藏
2020-07-26

共1个答案

小编典典

文档中

contentType(预设值:’application / x-www-form-urlencoded; charset = UTF-8’)

类型:字符串

将数据发送到服务器时,请使用此内容类型。默认值为“ application / x-www-form-urlencoded; charset =
UTF-8”,在大多数情况下都可以。如果您将内容类型显式传递给$
.ajax(),则它将始终被发送到服务器(即使没有数据发送)。如果未指定字符集,则将使用服务器的默认字符集将数据传输到服务器。您必须在服务器端对此进行适当解码。

和:

dataType(默认值:Intelligent Guess(xml,json,脚本或html))

类型:字符串

您期望从服务器返回的数据类型。如果未指定,则jQuery将尝试根据响应的MIME类型来推断它(XML
MIME类型将产生XML,在1.4中,JSON将产生JavaScript对象,在1.4中,脚本将执行该脚本,而其他任何内容将是以字符串形式返回)。

它们本质上与您认为的相反。

2020-07-26