首页 文章

getScript没有加载本地脚本

提问于
浏览
1

我正在尝试使用getScript在本地加载javascript文件,但它返回404错误 .

test.js - 我正在尝试加载的脚本:

var hello = function(){
    alert( "test" );
}
hello();

index.html中的jQuery代码:

<script type='text/javascript'>
    $.getScript( "js/test.js" )
        .fail( function( e ){ $( 'body' ).html( JSON.stringify( e ) ) } )
        .done( function(){ alert( "Success" ) } );
</script>

当我在Chrome中打开index.html时,getScript失败,并且正文中显示以下内容:

{"readyState":4,"responseText":"","status":404,"statusText":"error"}

所以显然jQuery找不到指定的文件 . 但奇怪的是,当我使用传统标签时:

<script type='text/javascript' src='js/test.js'></script>

它工作正常 .

此外,如果我从外部网站加载,getScript工作正常,例如:

$.getScript( "http://www.youtube.com/player_api" )

那可能是什么问题呢?

1 回答

  • 2

    啊,关键是你在本地机器上运行它并尝试从本地硬盘驱动器中获取脚本 .

    问题是 $.getScript() 使用Ajax调用来加载脚本,出于安全原因,默认情况下不允许Ajax调用从某些浏览器(如Chrome)中的硬盘驱动器中获取内容 . 如果从真实的Web服务器加载,这不会是一个问题 .

    您可以通过自己插入脚本标记而不是使用jQuery的 $.getScript() 或不尝试从本地硬盘驱动器运行它来解决此问题 . 还有一个Chrome命令行参数可以绕过此安全限制,您可以将其用于开发目的(不建议用于通用浏览) .

相关问题