6

我一直在尝试为 jQuery 设置自定义 ajaxTransports,以便在我们的产品的某些场景中缩短一些工作流程。但是,我在使这些传输得到尊重方面的成功率为零(而我有许多工作的自定义 ajaxPrefilters)。

使用多个版本的 jQuery 测试:

  • 1.5.2
  • 1.6.4
  • 1.7.2
  • 1.8.0

用多个浏览器测试:

  • 火狐 15
  • 铬 21
  • iOS 5 网页浏览量

...

他们都没有工作。

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

...

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

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

...

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

4

1 回答 1

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

于 2012-09-18T17:30:44.743 回答