Re: [問題] cross domain request?

看板Ajax作者 (沉默是金。)時間15年前 (2010/04/14 22:01), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《flowwinds (..)》之銘言: : 大家好, : 最近小弟剛學ajax, ajax的網址就直接連到別的網站去 : 大家好, : 最近小弟初學ajax, ajax網址是設定連到別的網站去 : 在firefox+firebug環境下一直出現錯誤訊息"0x80004005 (NS ERROR FAILURE).." : 後來才查到這可能是作cross domain request造成的 : 到本機端設置server, 並且連結網址設為本機端的就好了.. : 不過想請教各位先進..為何不能用XHR作cross domain request呢? : 謝謝.. 安全性理由 , 如果你了解 session 原理 , 解釋起來會更簡單. 簡單來講 , 如果開放 cross domain request , 那可能會發生以下情形 . 1. 我平常會習慣性設定自動登入 gmail/facebook跟其他網站 , 2. 我明明在瀏覽B網站 , 他卻一直request和他不相關的A網站 . 而且還剛好是我習慣自動登入的這類網站 , 於是我可能在毫無警示的狀況下 , 被取走我 facebook的基本資料 , 好友資料 , 甚至誇張一點的 , 被砍掉我所有facebook資料 , 就只因為我B網站頁面的 js 有權限代表[我]去瀏覽A網站 , 並進行 get/post 行為 , 你說這是不是很可怕. XD (這裡有個重點中的重點 , 執行js時 , 執行客體是使用者本身 , 也就是瀏覽這個網頁的每個使用者 , 而不是這個站.) 故 js 無法透過 xmlHttpRequest 或 iframe , 去[取得]任何外站的資料. (觸發瀏覽行為 ,像window.open則是 OK 的.) 唯一的例外就是從外站讀入 javascript 檔案/圖片 , 所以很多網站提供 json 格式資料以供外部存取 . 對於 cross domain request 的對應方式 , 通常都是透過 server side 的代理去存取對方網站 . 這時候之所以會 ok 的理由在於 , 執行客體變成網站本身 , 也就是使用者教唆網站去對其他網站頁面進行存取 , 就不會出現如前所述無法避免的安全性問題了. (畢竟站對站不會有使用者的session資料 , 相對的 , 對於一些需要帳密存取的網站 , 就需要使用者提供帳號給網站才能代理操作.) -- What do you want to have ? / What do you have? 從書本中,你可以發現我的各種興趣。 從CD中,你可以瞭解我所喜歡的偶像明星。 或許從文字你很難以瞭解一個人,但從物品可以。 My PPolis , My past. http://ppolis.tw/user/Tony -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.218.161

04/14 22:29, , 1F
謝謝, 相當詳細的解釋
04/14 22:29, 1F

04/16 03:25, , 2F
勉強になりましたXD
04/16 03:25, 2F
文章代碼(AID): #1BnShFtR (Ajax)
文章代碼(AID): #1BnShFtR (Ajax)