Ajax跨域問題的一些解決方法

日期:2008-07-17  作者:喜騰小二  來源:PHPChina


網上已經有很多資料
http://www.xml.com/lpt/a/2005/11 ... idered-harmful.html
http://developer.yahoo.com/javascript/howto-proxy.html
這兩個網址有比較全的解決方法

現在方法有下麵這幾種:
Application Proxies : 這種必須透過後臺指令檔,比如PHP等,實質就是用Ajax讀觸發本機PHP,然後用PHP讀外部檔案,並返回給Ajax顯示

Script Tag Hack, or On-Demand JavaScript : 一樣,要透過後臺指令檔

Apache Proxy : 這種方法是在Apache伺服器中配置

apache's mod_rewrite or mod_proxy : 和上麵一樣,透過apache設定,偶現在實習這就用的mod_rewrite,測試過,mod_rewrite的回應時間快很多,將近三倍

JSON : 這個其實不是ajax了,從沒見過的東西,我看了半天,最後發現其實就是簡化了用JavaScript讀XML的操作,讓解析XML更簡單,不能非同步,有特定的格式,俱體看
http://developer.yahoo.com/common/json.html
http://json.org/
http://del.icio.us/help/json

document.domain : 沒成功,鬱悶,誰成功了告訴偶一聲:)

Digitally sign your scripts : 沒看,哈哈,上麵的mod_proxy方法解決了,就沒看後麵了

還有如果是自己的伺服器群(比如多臺伺服器用不同的網域名稱,而一個域的Ajax要讀另一個域的檔案),可以用一些別的方法,比如用apache建虛擬目錄,指嚮本機的一個檔案夾,而這個檔案mount另外一臺機器的放資料的檔案夾,這樣就可以象讀本機一樣讀了

測試時請一定要注意浏覽器快取,我測試時老說不成功,結果清空快取後就好了,哈哈
快取的解決辦法可以直接在url後麵加隨機參數,比如index.php?a_rand_number

<<<返回技術中心

技術文章

站內新聞