我使用ajax从服务器获取一个文件,该文件是JSON格式的字符串数组。当我执行如下ajax请求时,jQuery会自动将JSON字符串解析为数组。
$.ajax({
url: "modules.php",
success: function (data) {
//data is an array object not text
}
});但是,我想将数据保存到localStorage,它只能保存字符串。与其将数组(数据)转换回字符串,我宁愿停止jQuery自动解析JSON字符串,保存文本,然后自己解析JSON。更像是:
$.ajax({
url: "modules.php",
success: function (data) {
//jQuery hasn't parsed the JSON already, and data is a string.
localStorage.setItem("modules", data);
var parsedData = $.parseJSON(data);
//use the array
}
});发布于 2012-09-05 04:22:25
根据documentation的说法
success: function (data, textStatus, jqXHR)XHR对象包含响应文本:
jqXHR.responseText发布于 2012-09-05 04:23:07
您需要使用dataType属性绕过jQuery MIME类型验证:
$.ajax({
url: "modules.php",
success: function (data) {
//data is an array object not text
},
dataType: "html"
});发布于 2012-09-05 04:30:09
根据文档,如果在ajax调用中没有指定dataType,"jQuery将尝试根据响应的MIME类型推断数据类型“。
在每个调用的基础上,您可以将dataType添加到调用体,如AsKaiser所示(但我会使用text而不是html)。如果您总是希望每次ajax调用都返回纯文本,那么可以使用jQuery的$.ajaxSetup()。
https://stackoverflow.com/questions/12270764
复制相似问题