看一段简单的getScript
$.getScript( 'http://open.web.meitu.com/sources/xiuxiu.js', function(){ console.log('xxx'); } )
脚本是加载了,但console.log('xxx');不执行
看了文档http://api.jquery.com/jQuery.getScript/临时解决方案,用complete
$.getScript("ajax/test.js") .done(function(script, textStatus) { console.log( textStatus ); }) .fail(function(jqxhr, settings, exception) { $( "div.log" ).text( "Triggered ajaxError handler." ); }) .complete(function(){ //不管是啥了,扔这里。。。 });
加了fail(function(){console.log(arguments}),发现是脚本解析错误,开启Pause on all exceptions,终于找到了元凶——一个dataFilter
$.ajaxSetup({ dataFilter:function(data){ return data.replace(/\ufeff/g, ''); } })
这是以前写的一个过滤器,不知道为什么数据多出来这些奇怪的字符,用这个过滤掉。现在用getScript,没有data,导致错误,囧