首页  >  问答  >  正文

angular.js - AngularJS的CORS错误

初学angularjs,在使用指令的时候用到了templateUrl,直接使用该指令的话在chrome上是会报Cross Origin Request Script(CORS)错误,可能是基于安全考虑吧,不能直接加载file//文件。在ff下应该是可以的。

想问一下,在chrome下,有没有方式不通过搭建一个本地的服务器来解决这个问题,请各位大牛指教。

黄舟黄舟2690 天前945

全部回复(5)我来回复

  • 天蓬老师

    天蓬老师2017-05-15 16:52:03

    直接预编译模板,缓存到 $templateCache 里去,这样可以把预编译后的模板作为脚本直接加载到网页内部,没有跨域的问题。开发过程中可以使用自动预编译(你可以搜索一下相关的解决方案,比如 grunt + ngTemplate 等等)。

    如果你是第一次接触预编译模板这个概念,可能会摸不着头脑,别着急,起初我也查了好些资料才转过这个弯明白其中的原理。不过我现在正在忙,没时间细细讲解,建议你先就着预编译模板这五个字好好搜索一下相关的资料。等我有空再补细节吧。

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-15 16:52:03

    http://stackoverflow.com/questions/16251420/couldnt-load-template-using-templateurl-in-angularjs

    回复
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-15 16:52:03

    有个Chrome的插件。。。google 搜索 cors chrome 第一条就是:)

    回复
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-15 16:52:03

    可以快捷方式打开chrome 的时候加上 --disable-web-security参数。。。就是右键属性中改下
    变成"C:UsersAdministratorAppDataLocalGoogleChrome SxSApplicationchrome.exe" --disable-web-security
    不过会影响chrome的正常使用,你可以用canary作这个。
    或者,用grunt,用connect 加 livereload 插件,开发爽爽的,connect相当于做了一个服务器,livereload可以自动更新刷新浏览器

    回复
    0
  • PHP中文网

    PHP中文网2017-05-15 16:52:03

    经验证,楼上说的都是可以的,就看大家选取那种方式了,感谢大家

    回复
    0
  • 取消回复