永远不会调用jQuery getScript失败函数.看到这个小提琴:
http://jsfiddle.net/getsetbro/8xNMs/
http://jsfiddle.net/getsetbro/8xNMs/
$.getScript("http://api.jquery.com/scripts/jquery.NO-SUCH-FILE.js").done(function() { console.log('yep'); }).fail(function() { console.log('fail function does not fire fine'); });
永远不会调用完整的函数:
http://jsfiddle.net/getsetbro/ns6yQ/
$.ajax({ url: url,type: 'get',crossDomain: true,dataType: 'script',async:false,cache:false,success: function(result) { console.log('SUCCESS'); },error: function(result) { console.log('ERROR'); },complete: function(result) { console.log('COMPLETE'); } })
哦,在IE中它实际上会触发SUCCESS和COMPLETE它应该失败. = [
解决方法
.fail不适用于跨域请求.
// Bind script tag hack transport jQuery.ajaxTransport( "script",function(s) { // This transport only deals with cross domain requests if ( s.crossDomain ) { ... script = document.createElement( "script" );
脚本元素不会触发错误等.
但它适用于同一个域名. http://jsfiddle.net/8xNMs/2/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。