搜尋

首頁  >  問答  >  主體

angular.js - AngularJS的CORS錯誤

初學angularjs,在使用指令的時候用到了templateUrl,直接使用該指令的話在chrome上是會報Cross Origin Request Script(CORS)錯誤,可能是基於安全考慮吧,不能直接加載file//文件。在ff下應該是可以的。

想問一下,在chrome下,有沒有方式不透過搭建一個本地的伺服器來解決這個問題,請各位大牛指教。

黄舟黄舟2777 天前1012

全部回覆(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
  • 取消回覆