Пользовательская функция ajaxTransport без указания dataType не срабатывает (ВСЕ!)

Я пытался настроить пользовательский ajaxTransports для jQuery для короткого замыкания некоторых рабочих процессов в определенных сценариях для нашего продукта. Тем не менее, я добился нулевого успеха в обеспечении соблюдения этих транспортов (тогда как у меня есть много работающих пользовательских 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 ответ

Решение
$.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

Другие вопросы по тегам