$.getJSON - ajax 已发送,但回调函数被忽略 - Internet Explorer

发布于 2024-12-01 06:51:35 字数 808 浏览 0 评论 0原文

所以这是我的函数

function ajax(addr,loading, loadTo, json){
        addr = addr.replace(' ', '');
        if (loading){
                $("#"+loading).fadeIn();
        }

        if (json){
                $.getJSON(addr, function(data){
                        alert('whoooo working'); // <--- it never goes here
                        if (loading){
                                $("#"+loading).fadeOut();
                        }
                        procJSON(data);
                });
                return true;
        }
}

,我用

var postid = $(this).attr('data-postid');
ajax(url+'tools/delete/'+postid, 'loading'+postid, false, true);

ajax 发送调用它,显示图像(加载图像),但从未调用回调函数。

这不就是 IE 大列表中的新保留值吗?是的,我知道,IE 不是有效的浏览器,但我不能责怪我的客户

So here is my function

function ajax(addr,loading, loadTo, json){
        addr = addr.replace(' ', '');
        if (loading){
                $("#"+loading).fadeIn();
        }

        if (json){
                $.getJSON(addr, function(data){
                        alert('whoooo working'); // <--- it never goes here
                        if (loading){
                                $("#"+loading).fadeOut();
                        }
                        procJSON(data);
                });
                return true;
        }
}

and I'm calling it with

var postid = $(this).attr('data-postid');
ajax(url+'tools/delete/'+postid, 'loading'+postid, false, true);

ajax is sent, image (loading image) is showed, but callback function is never called.

Isn't that just new reserved value from that IE's big list? Yes I know, IE is not a valid browser, but I can't blame my customers

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沉溺在你眼里的海 2024-12-08 06:51:35

由于它在特定浏览器中失败,因此很可能是响应中意外标头的组合,以及浏览器如何基于该标头处理数据。

例如,如果响应的内容类型为 text/html 而不是 application/json,则浏览器可能会尝试将响应内容转换为 HTML 文档(通过添加 >pre 标签),这会导致 JSON 解析失败。

如果您使用 $.ajax 方法,您还可以捕获任何错误消息,这将为您提供有关发生情况的线索:

$.ajax({
  url: addr,
  dataType: 'json',
  success: function(data){
    alert('whoooo working'); // <--- it never goes here
    if (loading){
      $("#"+loading).fadeOut();
    }
    procJSON(data);
  },
  error: function(o,c,m) { alert(m); }
});

As it fails in specific browsers, it's likely that it is a combination of unexpected headers in the response, and how the browser handles the data based on that.

If for example the response has the content type text/html instead of application/json, the browser might try to turn the response content into a HTML document (by adding pre tags around it), which would then cause the JSON parsing to fail.

If you use the $.ajax method, you can also catch any error message, which would give you a clue to what's going on:

$.ajax({
  url: addr,
  dataType: 'json',
  success: function(data){
    alert('whoooo working'); // <--- it never goes here
    if (loading){
      $("#"+loading).fadeOut();
    }
    procJSON(data);
  },
  error: function(o,c,m) { alert(m); }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文