看一段簡單的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,導致錯誤,囧