爲了加快網站訪問速度,咱們不可避免要將靜態資源放到第三方CDN上。然而,咱們又須要在出錯之後可以知道詳細的報錯信息,這篇博客將介紹如何避免出現Script error.
css
crossorigin="anonymous"
到script標籤<script src="https://xxx.com/xxx.js" crossorigin="anonymous"></script>
crossorigin
能夠取枚舉值anonymous
或則use-credentials
。html
The "anonymous" keyword means that there will be no exchange of user credentials via cookies, client-side SSL certificates or HTTP authenticationnginx
anonymous即不發送Cookie和HTTP認證信息,對於靜態資源,咱們使用anonymous
就已經足夠。 關於crossorigin詳情能夠參考: CORS settings attributesajax
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin是HTML5中定義的一種解決資源跨域的策略。他是經過服務器端返回帶有Access-Control-Allow-Origin標識的Response header,用來解決資源的跨域權限問題。shell
CDN服務商好比七牛默認已經配置好了Access-Control-Allow-Origin,使用curl
命令獲取頭部:小程序
curl --head https://js.fundebug.cn/fundebug.0.0.4.min.js | grep "Access-Control-Allow-Origin"
結果以下:微信小程序
若是您有單獨的子域名(子域名也會被認定爲不一樣源)用來分發靜態資源,那麼須要在服務端作一點配置。針對不一樣語言和框架的配置方法咱們不一一列出,Nodejs的Express框架下是這樣配置的:跨域
app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE"); next(); });
其它設置Access-Control-Allow-Origin請參考服務器
Fundebug專一於JavaScript、微信小程序、微信小遊戲、支付寶小程序、React Native、Node.js和Java實時BUG監控。 自從2016年雙十一正式上線,Fundebug累計處理了7億+錯誤事件,獲得了Google、360、金山軟件、百姓網等衆多知名用戶的承認。歡迎免費試用!微信
轉載時請註明做者Fundebug以及本文地址:
https://blog.fundebug.com/2017/04/07/solve-script-error/