2010-01-16

dojo 的 "Could not load cross-domain resources:..." 錯誤與解決方法

這是廣告


阿舍遇到這個錯誤的情形,是在阿舍使用了遠端的 dojo.xd.js 檔案,例如 Google 或 AOL 的 CDN 所提供的 dojo.xd.js 檔,然後又用 dojo.require() 來載入其它模組時,就會發生這個錯誤,會造成這個錯誤的原因是因為用 dojo.require() 載入模組時,Dojo 預設會在參考 dojo.js 或 dojo.dojoxd.js 所引用的路徑來尋找所需的模組,但是,因為是引用遠端的檔案,所以,會造成檔案路徑判斷錯誤而找不到所需的模組檔案。

要解決這個問題的方法不難,只要在引用遠端的 dojo.xd.js 檔案之前,先用 djconfig 把路徑設成 ./ 就可以了,範例如下:

<head>

<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.3/dijit/themes/tundra/tundra.css">

<script type="text/javascript">

djConfig = {
    parseOnLoad: true,
    baseUrl: "./",
};

</script>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.3/dojo/dojo.xd.js" djConfig="parseOnLoad: true">

</script>

<script type="text/javascript">

dojo.require("dijit.Menu");

</script>

</head>

問題還是沒解決嗎 ?? 這裡有更多的 Ubuntu 相關教學可以參考哩 ...
買本阿舍寫的電子書帶走 - Ubuntu 指令新手馬上會用到的 35 個技法


關於阿舍

好文不藏私,請多分享囉!! ^^=

沒有留言 :