没有指定dataType的自定义ajaxTransport函数没有触发(全部!)

时间:2012-09-18 16:53:52

标签: ajax jquery xmlhttprequest jqxhr

我一直在尝试设置custom ajaxTransports for jQuery,以便在某些情况下为我们的产品缩短某些工作流程。然而,我没有成功地使这些运输得到尊重(而我有许多工作custom ajaxPrefilters)。

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

  • 1.5.2
  • 1.6.4
  • 1.7.2
  • 1.8.0

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

  • Firefox 15
  • Chrome 21
  • iOS 5网页浏览

...

他们都没有工作。

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

...

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

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

...

我只是做错了吗?我很高兴被告知,只要我能让这个工作! -_-

1 个答案:

答案 0 :(得分:4)

$.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