我有一个AJAX请求,期望以JSON作为响应。
但是有可能返回的内容可能不是JSON,而是HTML错误页面(不幸的是,响应类型为200)。
如何确定响应是否为JSON?
(如果有帮助,我正在使用jQuery。但是我不能使用任何插件。)
好吧,如果您使用的是jQuery并指定了dataType
对$.ajax()
调用的属性,json
那么jQuery将尝试解析JSON,如果不是,则JSON应该调用error()
回调。
$.ajax({
url: '/my/script.ext',
dataType: 'json',
success: function(data, textStatus, jqXHR) { /*YAYE!!*/ },
error: function(jqXHR, textStatus, errorThrown) { /*AWWW... JSON parse error*/ }
});
编辑
对于不使用jQuery的任何人,基本思想是尝试将其解析为json并捕获错误:
var data = 'some_data';
try {
data = JSON.parse(data);
} catch(e) {
//JSON parse error, this is not json (or JSON isn't in your browser)
}
//act here on the the parsed object in `data` (so it was json).
系统的日志需要登录和登出闭环,即有一个用户登录日志,就需要有一条登出日志。 如果用户通过登出按钮手动登出,触发登出接口是没问题的。 但是大多数用户,包括我自己都是直接点击x,关闭系统。 于是我监听了beforeunload事件,想在这里发登出请求。 现在遇到两个问题,一是:刷新也会触发这个事件。 二是:触发这个事件后的弹窗 重新加载是刷新弹出的,离开时关闭弹出的,我只想在点击离开的时候触发登出,重
cmf_is_wechat() 功能 判断是否为微信访问 参数 无 返回 boolean
cmf_is_mobile() 功能 判断是否为手机访问 参数 无 返回 boolean
检查给定的参数是否是一个 symbol。 使用 typeof 来检查一个值是否为一个 symbol 。 const isSymbol = val => typeof val === 'symbol'; isSymbol(Symbol('x')); // true
本文向大家介绍如何判断一个对象是否为空?相关面试题,主要包含被问及如何判断一个对象是否为空?时的应答技巧和注意事项,需要的朋友参考一下 可以使用 JSON.stringify() 方法判断 还有就是使用for in 遍历该对象 3.ES6 新增的方法 Object.keys(): Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组。 如果我们的对象为空,他会返回一个
本文向大家介绍JavaScript中使用Object.prototype.toString判断是否为数组,包括了JavaScript中使用Object.prototype.toString判断是否为数组的使用技巧和注意事项,需要的朋友参考一下 为什么要用Object.prototype.toString而不是Function.prototype.toString或者其它?这是和他们的toStrin