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 指令新手馬上會用到的 35 個技法 - 阿舍寫的付費電子書 (點選)


關於阿舍

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



沒有留言 :

張貼留言

如果留言後,發現留言不見了,這通常是因為 Goolge 把它認為是垃圾留言了,請用信件通知阿舍調整 ( ayubiz@gmail.com )。謝謝 !