跨域 $.ajax 调用引发 ajaxError?

发布于 2024-10-24 07:09:09 字数 1245 浏览 2 评论 0原文

当我使用 $.ajax 调用(在跨域调用上)时,我无法触发 jQuery 的 ajaxError 全局处理程序。有什么办法让它火起来吗?

我已经包括了一个快速&下面的脏测试(改编自 那么 $.ajaxError 是如何工作的?)。实际上,即使我明确地将 global 设置为 true,也不会触发任何全局 ajax 事件。如果我将 $.ajax 转换为 $('result').load ,它可以正常工作,但这不是我想要的。

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>jQuery Sandbox</title>
  </head>
  <body>
    <div class="trigger">Trigger</div>
    <div class="result"></div>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
    <script type="text/javascript">
      $(function () {
        $(document).ajaxError(function (e, xhr, settings, exception) {
          alert(I broke);
        });

        $('.trigger').click(function () {
          $.ajax({
            type: "GET",
            global: true,
            url: 'http://localhost/error',
            success: function(data){
              alert('ftw');
            },
            dataType: "jsonp",
          });
        });
      });
    </script>
  </body>
</html>

感谢您的任何帮助。

I'm having trouble getting jQuery's ajaxError global handler firing when I use a $.ajax call (on a cross domain call). Is there any way to get it to fire?

I've included a quick & dirty test (adapted from So how does $.ajaxError work?) below. Actually, none of the global ajax events fire, even if I explicitly set global to true.If I convert the $.ajax to a $('result').load it works fine, but that's not what I want.

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>jQuery Sandbox</title>
  </head>
  <body>
    <div class="trigger">Trigger</div>
    <div class="result"></div>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
    <script type="text/javascript">
      $(function () {
        $(document).ajaxError(function (e, xhr, settings, exception) {
          alert(I broke);
        });

        $('.trigger').click(function () {
          $.ajax({
            type: "GET",
            global: true,
            url: 'http://localhost/error',
            success: function(data){
              alert('ftw');
            },
            dataType: "jsonp",
          });
        });
      });
    </script>
  </body>
</html>

Thanks for any help.

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

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

发布评论

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

评论(1

海之角 2024-10-31 07:09:09

阅读此处 jQuery ajax

某些类型的 Ajax 请求,例如
JSONP和跨域GET请求,
不要使用 XHR;在这些情况下
XMLHttpRequest 和 textStatus
传递给回调的参数是
未定义。

跨域调用最好使用curl

Read here jQuery ajax

Some types of Ajax requests, such as
JSONP and cross-domain GET requests,
do not use XHR; in those cases the
XMLHttpRequest and textStatus
parameters passed to the callback are
undefined.

Better to use curl for cross domain call

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文