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 )。謝謝 !