如何知道ajax请求的结果是否是json?

Omu*_*Omu 1 javascript jquery json

我正在使用$ .get做一个ajax请求,因此我可以得到一个简单的字符串或JSON,如何知道结果是否是JSON(对象)?

编辑:

我可以返回一个字符串,并以某种方式将其转换为object/JSON吗?

Nil*_*lor 5

它不是100%但是服务器可能设置了响应头:Content-Type: application/json.所以你可以尝试检查它:

$.ajax({
  url: 'url',
  success: function(data, textStatus, xhr){
    var spoiler = xhr.getResponseHeader('Content-Type');
    spoiler == 'application/json' ? alert('JSON received') : alert('Not JSON received');
  }
});
Run Code Online (Sandbox Code Playgroud)

当然,只有当您的服务器以正确的方式设置其标头时,它才有效.

还有一种方法 - 尝试创建一个函数并捕获您可能遇到的错误.

try {
  x = ( new Function('return ' + received_data) )();
}
catch (e) { 
  console.log('Its not a JSON data... or its invalid.');
}
Run Code Online (Sandbox Code Playgroud)