我有以下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代码的文本字符串?
从文档中:
contentType(预设值:’application / x-www-form-urlencoded; charset = UTF-8’) 类型:字符串 将数据发送到服务器时,请使用此内容类型。默认值为“ application / x-www-form-urlencoded; charset = UTF-8”,在大多数情况下都可以。如果您将内容类型显式传递给$ .ajax(),则它将始终被发送到服务器(即使没有数据发送)。如果未指定字符集,则将使用服务器的默认字符集将数据传输到服务器。您必须在服务器端对此进行适当解码。
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中,脚本将执行该脚本,而其他任何内容将是以字符串形式返回)。
dataType(默认值:Intelligent Guess(xml,json,脚本或html))
您期望从服务器返回的数据类型。如果未指定,则jQuery将尝试根据响应的MIME类型来推断它(XML MIME类型将产生XML,在1.4中,JSON将产生JavaScript对象,在1.4中,脚本将执行该脚本,而其他任何内容将是以字符串形式返回)。
它们本质上与您认为的相反。