作者TonyQ (沉默是金)
看板Ajax
标题Re: [问题] 请问XHR跨网域存取有什麽好对策?
时间Sat Nov 29 20:41:43 2008
※ 引述《liaosankai (低温烘焙)》之铭言:
: 使用ajax的人应该都知道存在着XHR跨网域存取禁止问题
: 我找一篇是使用DSSO的方式解决
: http://www.blogjava.net/hunteva/archive/2007/06/13/dsso.html
: 有更好的办法吗?
先讲结论:
1.期待 firefox 承诺过的 cross domain http request.
(不过就算有也是firefox only)
2.server side 的 proxy法
3.转换为可以存取的操作.
(ex. js、img 等可以cross domain的方案.)
────────────────────────────────
前面有几篇讨论 script / lazy load的文章应该都有带到,
基本上要先定义好命题 , 「跨网域存取」在网页上,
依存取的对象分成以下几种:
1.html
2.css
3.img
4.js
基本上我们在碰到「跨网域存取」这个问题 ,
会有问题的主要是在於 html的存取 ,
如果你的问题不需要存取别的网页的html就能解决 ,
自然这问题就不会发生在你身上.
如果你非得存取不可 , 很简单把request的资料送给server ,
让server用他的身份开socket 去存取目标网站 , 取得对应的回应 ,
不然可以随便用使用者的request去存取别的网站, 那就真的会天下大乱了.
转换为 js , 也就是你提得link的作法是合理 , 但根据我的开发经验 ,
真正会碰到 cross domain 问题的往往不是这里...
会能够cross domain 又能拿到理想的.js ,
除非是有开放 json 型态的 api , 或是对方配合度很高. XD
--
What do you want to have ? / What do you have?
从书本中,你可以发现我的各种兴趣。
从CD中,你可以了解我所喜欢的偶像明星。
或许从文字你很难以了解一个人,但从物品可以。
My PPolis , My past. http://ppolis.tw/user/Tony
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 221.169.78.140
1F:推 ybite:Cross-site XHR应该会在Firefox 3.1加上 11/30 01:06