ajax - 没有指定 dataType 的自定义 ajaxTransport 函数不会触发(根本!)

标签 ajax jquery xmlhttprequest jqxhr

我一直在尝试设置custom ajaxTransports for jQuery在我们的产品的某些场景下缩短某些工作流程。然而,我在让这些传输受到尊重方面取得了零成功(而我有很多工作 custom ajaxPrefilters )。

使用多个版本的 jQuery 进行测试:

  • 1.5.2
  • 1.6.4
  • 1.7.2
  • 1.8.0

使用多个浏览器进行测试:

  • 火狐15
  • Chrome 21
  • iOS 5 WebView

...

它们都不起作用。

JsFiddle 测试用例: http://jsfiddle.net/PVYut/

...

如果我添加一个 dataType 来缩小范围,那么它就可以正常工作。

JsFiddle 测试用例: http://jsfiddle.net/PVYut/1/

...

我只是做错了什么吗?只要我能做到这一点,我很高兴被告知! -_-

最佳答案

$.ajaxTransport("+*", function(options, originalOptions, jqXHR, headers, completeCallback   ) {
    console.log("Executing ajaxTransport");
    return {
        send: function( headers, completeCallback ) {
            completeCallback(404, "error", {});
        },
        abort: function() {
          /* abort code */
        }
    }
});

$.ajax("?jqTrans=" + (+(new Date())))
    .done(function() {
        console.log("ERROR: Should not have been successful!");
    })
    .fail(function() {
        console.log("SUCCESS: Should have failed.");  
    });

这里是jsFiddle

关于ajax - 没有指定 dataType 的自定义 ajaxTransport 函数不会触发(根本!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12481560/

相关文章:

javascript - 无法使用 Traceur 加载模块 - 尝试通过 xhr 访问文件

javascript - XMLHttpRequest 不起作用(空白页)

angular - 如何修复 xhr2-cookies 中的 "module not found error"

jquery - 自定义 header 的 ajax GET 不起作用 [CORS,预检]

python - 从 XML 内容生成静态 HTML 站点

jquery - 如何使用 jQuery 自动完成功能限制用户只能选择 4 个值

javascript - 选择特定元素并更改其中一个元素的样式

javascript - 输入更改时jquery文本更改

jquery - 获取 ajax 请求时 Rails 中的 500 内部服务器错误

Facebox 灯箱内的 Javascript