努力思考 + 实践, 眼高手低是不行的. 注册 | 登陆

Ajax开发中的跨域

From: http://www.conis.cn/post/63.html (版权所有©Conis)

  有没有在开发的时候出现过样的错误,在Firefox的错误控制台中显示[uncaught exception: (XMLHttpRequest.open)],错误提示中间可能还会有一些乱码,出现这种问题一般都是因为跨域操作。
  跨域操作就是在A域读取B域的数据,例如在http://www.conis.cn的网站获取http://www.romboo.com的数据,但在Firefox中,XMLHttpRequest对跨域有些限制,怎么办?一般我们有两种办法。
  第一种是曲线救国,我们可以由本域的服务器程序去取数据,然后输出(response)到客户端,这样Ajax就相当于在本域内取数据了,缺点是对服务器压力比较大,如图1

大小: 4.27 K
尺寸: 258 x 202
浏览: 98 次
点击打开新窗口浏览全图
图1

  第二种方法可以借用Script的src动态属性,因为src对域没有任何限制,但这种方法的缺点是服务器返回只能是avascript代码,这样的缺陷也就限制了异域名必需是可控的。打个比方,如果你想在你的网站获取新浪的首页(当然我们不会这么做,因为没有任何意义),你就中能采用第一种方法,因为新浪的首页返回的内容是你不可控的。实现的方法如下:

JavaScript代码
  1. <script language="Javascript" src="" id="remote"></script>   
  2. <script language="Javascript">   
  3. function get(url) {   
  4.     var obj = document.getElementById("remote");   
  5.     obj.src = url;   
  6.     if (obj.readStatus == 200) {   
  7.         //在这里,你可以调用服务器返回的函数或者变量       
  8.     }   
  9. }   
  10. </script>  

Tags: ajax

« 上一篇 | 下一篇 »

只显示5条记录相关文章

Trackbacks

点击获得Trackback地址,Encode: UTF-8

3条记录访客评论

你好,我在找FF的跨域解决方案 无意找到你的blog
看了这篇文章  试试 却 没能实现  
感觉 是不是写错了啊

请指教
msn cyfwind@hotmail.co.jp
blog  http://blog.cyfwind.com/

Post by cyfwind on 2008, May 1, 10:26 PM 引用此文发表评论 #1

用PHP做中转把.
:)

Post by zwws on 2008, May 4, 3:09 PM 引用此文发表评论 #2

中转也会出问题  firebug报错

Post by j on 2008, September 5, 1:18 PM 引用此文发表评论 #3


本文因为某种原因此时不允许访客进行评论