谁能给我一个如何使用该contents
物业的例子?
$.ajax(
{
contents : {...}
}
jQuery 自己的文档仅说明了以下内容:
内容
An object of string/regular-expression pairs that determine how jQuery will parse the response, given its content type
来自http://api.jquery.com/jQuery.ajax/:
$.ajax() 转换器支持将数据类型映射到其他数据类型。但是,如果您想将自定义数据类型映射到已知类型(例如 json),则必须使用 content 选项在响应 Content-Type 和实际数据类型之间添加对应关系:
$.ajaxSetup({
contents: {
mycustomtype: /mycustomtype/
},
converters: {
"mycustomtype json": function ( result ) {
// do stuff
return newresult;
}
}
});
所以,这意味着您的服务器响应的数据类型可能是mycustomtype
. 当 AJAX 调用接收到数据时,它会看到它的数据类型是mycustomtype
并且匹配我们设置的正则表达式(在contents中):/mycustomtype/
并将数据扔到我们指定的转换器中,例如。mycustomtype json()
将尝试将数据转换为 json。
详细说明转换器:
这converters["mycustomtype json"]
意味着这里指定的函数将在您要转换mycustomtype
为json
格式时执行,因此该函数的内容将执行将返回的解析JSON
。您可以指定其他转换类型,例如。
converters: {
"mycustomtype json": converterFromCustomTypeToJson, // mycustomtype -> json
"mycustomtype jsonp": converterFromCustomTypeToJsonP, // mycustomtype -> jsonp
"mycustomtype text": converterFromCustomTypeToText, // mycustomtype -> text
"text mycustomtype": converterFromTextToCustomType // text -> mycustomtype
}
您将编写自己的转换器函数:
var converterFromCustomTypeToJson = function(result) {
var jsonResult = ...
/* do conversion to JSON */
return jsonResult;
},
converterFromCustomTypeToJsonP = function(result) {
var jsonPResult = ...
/* do conversion to JSONP */
return jsonPResult;
},
converterFromCustomTypeToText = function(result) {
var textResult = ...
/* do conversion to text */
return textResult;
},
converterFromTextToCustomType = function(result) {
var customResult = ...
/* do conversion to mycustomtype */
return customResult;
};
您还希望避免弄乱默认转换器,它们是:
{
"* text": window.String,
"text html": true,
"text json": jQuery.parseJSON,
"text xml": jQuery.parseXML
}
contents
用于定义新的数据类型。jQuery 中定义了 4 种默认数据类型:xml、json、script 和 html。如果没有为 ajax 调用指定 dqataType,jQuery 将尝试根据响应的 MIME 类型来推断它。使用 定义新数据类型时contents
,需要指定正则表达式,该表达式将用于从响应的 MIME 类型推断自定义数据类型。
例如,定义一个 CSV 数据类型,否则将被解析为文本:
$.ajaxSetup({
// for: text/csv or application/csv
contents: {
csv: /csv/
}
});
contents
与转换器一起使用:
要将 csv 转换为 json,请定义一个自定义转换器:
$.ajaxSetup({
contents: {
csv: /csv/
},
converters: {
"csv json": function (result) {
// parse csv here
return jsonresult;
}
}
});