gpt4 book ai didi

javascript - 在 ajaxSuccess 期间查明响应是否为 JSON 的理想方法

转载 作者:可可西里 更新时间:2023-11-01 01:46:19 26 4
gpt4 key购买 nike

在我的 $.ajaxSucess() 函数中,我需要查明响应是否为 json。目前我正在这样做:

$('body').ajaxSuccess(function(evt, xhr, settings) {
var contType = xhr.getAllResponseHeaders().match(/Content-Type: *([^)]+);/);
if(contType && contType.length == 2 && contType[1].toLowerCase() == 'application/json'){
...

有没有更好的办法?

最佳答案

假设您需要 json,我会尝试像 json 一样解析它并捕获任何错误。另见 jQuery.parseJSON .

try {
jQuery.parseJSON(response);
} catch(error) {
// its not json
}

如果您期待多种不同响应类型中的一种(即它可能是 json 或可能只是文本等),那么您可能需要变得更复杂。我会使用 xhr.getResponseHeader("content-type")。参见 this blog post有关处理内容类型的一些重要细节。

$.ajax({
type: "POST",
url: "/widgets",
data: widgetForm.serialize(),
success: function(response, status, xhr){
var ct = xhr.getResponseHeader("content-type") || "";

if (ct.indexOf(‘html’) > -1) {
widgetForm.replaceWith(response);
}

if (ct.indexOf(‘json’) > -1) {
// handle json here
}
}
});

关于javascript - 在 ajaxSuccess 期间查明响应是否为 JSON 的理想方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7662620/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com