从ajax请求中获取原始文本
Get raw text from ajax request
我使用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
}
});
根据文件
success: function (data, textStatus, jqXHR)
XHR对象包含响应文本:
jqXHR.responseText
您需要使用dataType
属性绕过jQuery MIME类型验证:
$.ajax({
url: "modules.php",
success: function (data) {
//data is an array object not text
},
dataType: "html"
});
根据文档,如果在ajax调用中未指定dataType
,"jQuery将尝试根据响应的MIME类型推断[数据类型]"。
在每次调用的基础上,您可以将dataType
添加到调用主体中,如AsKaiser所示(但我会使用text
而不是html
)。如果您总是希望每次ajax调用都返回纯文本,那么可以使用jQuery的$.ajaxSetup()
。
不要使用JQuery!您可以对此请求使用纯JavaScript。你试过了吗http://www.w3schools.com/ajax?请参阅请求和响应。您将使用稍多的代码,但速度会更快,并直接向您提供响应。这是我写的一个包装:
function AJAX(url, success, async) {
if (window.XMLHttpRequest) {
var request = new XMLHttpRequest;
} else {
// IE6 and IE5 (unnecessary)
var request = new ActiveXObject("Microsoft.XMLHttp");
}
if (async) request.onReadyStateChange = function() {
if (request.readyState == 4) {
success(request.status, request.responseText);
}
};
request.open("GET", url, async);
request.send();
if (!async) success(request.status, request.responseText);
}
此函数将URL作为字符串,将成功函数作为接受(status code, response string)
的函数,以及它是否异步为布尔值。
相关文章:
- 从ajax请求中获取原始文本
- jQuery 获取原始文本(未转义),以便通过下划线模板进一步解析
- 返回文本区域的原始上下文菜单
- 如何使用jQuery获取原始状态文本
- jquery下拉菜单修改所选文本,但在后续单击时显示先前所选文本的原始值
- 获取可编辑
的原始文本/值 - 如何使用 jQuery 将段落的原始文本格式放入 HTML 段落元素中
- 使用 js 或浏览器的本机脚本直接发送原始文本
- 可编辑元素,覆盖不起作用的原始文本(x-Editable)
- 主干js原始文本发布
- 将tinyMCE内容替换为原始文本
- 复选框 - 选中添加文本,取消选中删除文本区域中的原始文本
- Javascript - 双击后将文本更改回原始文本
- 如何在使用微软翻译api翻译后恢复原始文本?
- 获取HTML元素的完整(和原始)文本
- 文本区域应该得到复制到另一个文本区域和原始文本区域应该清除按钮点击使用javascript
- 文本从一个文本区域应该得到复制到另一个文本区域和原始文本区域应该清除按钮点击使用javascript
- 如何用xmlhttp请求发送原始文本
- jQuery记住多个focusin事件的原始文本框值
- 如何使程序恢复到原始文本,而无需重新键入它