<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    emu in blogjava

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks

    測試代碼如下:
    xml.xml
    一個簡單的xml文件

    <?xml version="1.0" encoding="gb2312"?>
    <data>abc</data>


    test.htm:
    一個簡單的使用xmlhttprequest獲取xml資源的頁面:

    <html>
    <head>
     
    <script type="text/JavaScript">
     <!--
     document.domain="emu.emu.com"
     
    var newsXML;
     
    function init(){
      newsXML = window.XMLHttpRequest?(
    new XMLHttpRequest()):(new ActiveXObject("Microsoft.XMLHTTP"));//選擇合適的xmlhttprequest控件
      newsXML.onreadystatechange= handleXML;
      newsXML.open("GET","xml.xml",
    true);
      newsXML.send(
    null);
     }
     
    function handleXML(){
      
    if(newsXML.readyState==4){
            alert(newsXML.responseText)
            
    try{
                alert(newsXML.responseXML.getElementsByTagName("data").length)
            }
    catch(e){
                alert(e)
            }
      }
     }
     
    //-->
     </script>
    </head>
    <body onload="init()">
    測試firefoxbug
    </body>
    </html>


    注意這一行: 
    document.domain="emu.emu.com"

    配置WINDOWS\system32\drivers\etc\hosts

    127.0.0.1       localhost
    127.0.0.1       emu.emu.com


    好了,開啟apache把上面的xmlhtm文件發布出去,通過emu.emu.com域名來訪問test.htm文件,結果報錯:

    調用方法 XMLDocument.getElementsByTagName 時權限不足


    只要設置了domain,不管domain怎么設,getElementsByTagName 都肯定報權限不足錯誤。其實根本就沒有任何跨域操作,而且連responseText都可以獲得了,訪問getElementsByTagName 還有什么權限限制的必要?莫名其妙!

    IE下運行就很正常。在firefox下把document.domain="emu.emu.com"這一行刪除后也運行正常,因此確定是firefoxbug

    按照http://www.mozilla.org/projects/security/components/jssec.html 中的說明設置netscape.security.PrivilegeManager.enablePrivilege 來提升頁面訪問權限也無法解決此問題。

    這個bug造成了合法的跨域xml請求(同一個父域)無法正確解析返回的xml數據(但是能訪問文本信息)。這不是逼我用AjaH嘛?

    posted on 2006-03-01 15:44 emu 閱讀(3024) 評論(10)  編輯  收藏

    評論

    # re: FireFox 的xmlhttprequest控件域權限判斷錯誤的bug 2006-04-27 18:54 weijnzheng
    謝謝老大  回復  更多評論
      

    # re: FireFox 的xmlhttprequest控件域權限判斷錯誤的bug[未登錄] 2007-07-26 00:30 Lex
    我遇到的情況不知道是不是和你一樣...郁悶...
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>無標題頁</title>
    <script type="text/javascript">

    var xmlhttp;
    function createHTTP()
    {
    //根據不同的瀏覽器創建XMLHttpRequest
    xmlhttp=window.XMLHttpRequest?(new XMLHttpRequest()):(new ActiveXObject("Microsoft.XMLHTTP"));//選擇合適的xmlhttprequest控件
    }
    //開始調用
    function startHTTP()
    {
    //創建對象
    createHTTP();
    //狀態變化與事件掛鉤
    xmlhttp.onreadystatechange=StateDO;
    //獲取XML文件的數據
    xmlhttp.open("GET","XMLFile.xml",true);
    //不帶任何參數
    xmlhttp.send(null);
    }
    function StateDO()
    {
    //判斷是否是完成狀態
    if(xmlhttp.readystate==4)
    {
    alert(xmlhttp.responseText);
    //判斷是否執行成功
    if(xmlhttp.status==200)
    {
    //更新頁面上的某元素
    document.getElementById("mytext").innerHTML=xmlhttp.responseText;
    }
    }
    }
    </script>
    </head>
    <body>
    <div id="msg" style="text-align:left;"></div>
    <div style="DIRECTION: ltr; LETTER-SPACING: normal; POSITION: static; border:1px solid #e8e8e8; BACKGROUND-COLOR: #fafafa; TEXT-ALIGN: center" id="mytext">null</div>
    <input type="button" value="更新DIV" onclick="startHTTP()" />
    </body>
    </html>

    XML:
    <table border="1">
    <tbody>
    <tr>
    <th>Name</th>
    <th>Sex</th>
    <th>Age</th>
    </tr>
    <tr>
    <th>zgb</th>
    <th>male</th>
    <th>23</th>
    </tr>
    <tr>
    <th>huf</th>
    <th>male</th>
    <th>27</th>
    </tr>
    </tbody>
    </table>
      回復  更多評論
      

    # re: FireFox 的xmlhttprequest控件域權限判斷錯誤的bug[未登錄] 2007-07-26 00:32 Lex
    希望LZ能幫幫忙....我也是在FF下讀不了XML....  回復  更多評論
      

    # re: FireFox 的xmlhttprequest控件域權限判斷錯誤的bug 2007-08-01 09:26 開始づKiss
    xmlhttp.overrideMimeType('text/xml')

    FF讀XML必須要加這一句  回復  更多評論
      

    # re: FireFox 的xmlhttprequest控件域權限判斷錯誤的bug 2007-08-02 19:37 emu
    不是FF讀xml要加這一句,而是服務器輸出xml的時候沒有正確輸出'text/xml'的情況下要加這一句。這和上面的權限問題沒有什么關系。  回復  更多評論
      

    # re: FireFox 的xmlhttprequest控件域權限判斷錯誤的bug 2007-10-09 16:20 crystal
    原來如此 原來是個bug
    不知有沒有方法可以解決呢?  回復  更多評論
      

    # re: FireFox 的xmlhttprequest控件域權限判斷錯誤的bug 2007-10-10 13:58 emu
    偶現在讀操作主要用json來解決了。寫操作不主張用get方式,看來只能用form post了。  回復  更多評論
      

    # re: FireFox 的xmlhttprequest控件域權限判斷錯誤的bug 2007-11-16 09:14 tusury
    跨域的問題現在多數瀏覽器的最新版本都是這樣設定的
    ie7,firefox都一樣,主要是為了安全考慮,但給開發者很大的麻煩
    我前不久也碰到這個問題,半天沒搞定,無奈采取其他的解決方案
    希望又比較可行的解決辦法  回復  更多評論
      

    # re: FireFox 的xmlhttprequest控件域權限判斷錯誤的bug 2008-06-24 16:17 gmmylose@126.com
    此問題在FF3.0上已經修正過了。  回復  更多評論
      

    # re: FireFox 的xmlhttprequest控件域權限判斷錯誤的bug 2009-04-28 21:43 儒道佛
    FF3.5(.1)己放開
    支持跨站點XMLHttpRequest  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品在线网站| 色欲aⅴ亚洲情无码AV| 中文字幕免费人成乱码中国| 国产精品免费一级在线观看| 亚洲综合色一区二区三区| 在线精品一卡乱码免费| 亚洲性无码av在线| 成人免费视频77777| 国产亚洲精品成人AA片| 毛片免费在线观看网站| 亚洲日韩AV一区二区三区四区| 在线看片人成视频免费无遮挡| 亚洲av乱码中文一区二区三区| 国产精品冒白浆免费视频| 黄页网站在线视频免费| 国产亚洲精品免费视频播放| 好猛好深好爽好硬免费视频| 在线亚洲精品自拍| 小草在线看片免费人成视久网| 亚洲毛片基地日韩毛片基地| 日韩欧美一区二区三区免费观看| 久久亚洲AV成人无码国产电影| 亚洲精品无码专区2| 久久这里只精品国产免费10| 日本一道本高清免费| 一级做a爰片久久免费| 国产成人亚洲精品青草天美| 精品久久8x国产免费观看| 亚洲av无码专区首页| 国产亚洲精品无码拍拍拍色欲| 日韩免费视频一区二区| 亚洲日韩av无码中文| 亚洲熟女一区二区三区| 69堂人成无码免费视频果冻传媒| 综合一区自拍亚洲综合图区| 国产亚洲精久久久久久无码| 四虎最新永久免费视频| 美女被爆羞羞网站在免费观看| 亚洲成a人片在线观看无码专区| 免费电视剧在线观看| 久草视频免费在线观看|