Пользовательская функция 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