$.getScript(url, callback),callback不执行,一次查错经历

看一段简单的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,导致错误,囧

posted @ 2013-03-05 13:38  Arliang  阅读(7095)  评论(2编辑  收藏  举报