<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  回復  更多評論
      


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


    網站導航:
     
    主站蜘蛛池模板: 久久精品国产精品亚洲人人| 大学生一级毛片免费看| 亚洲熟妇无码一区二区三区| 久久久久久国产精品免费免费男同| 蜜桃AV无码免费看永久| 亚洲an天堂an在线观看| 久久中文字幕免费视频| 亚洲国产综合专区在线电影| 久操免费在线观看| 久久久无码精品亚洲日韩按摩| 亚洲另类无码专区首页| 美女无遮挡拍拍拍免费视频| 亚洲人成网站观看在线播放 | 久久久久亚洲AV无码观看| 秋霞人成在线观看免费视频 | 中文字幕亚洲一区二区va在线| 亚洲黄色片在线观看| 啦啦啦完整版免费视频在线观看| 91嫩草亚洲精品| 999zyz**站免费毛片| 亚洲av日韩av激情亚洲| av无码免费一区二区三区| 亚洲人成网亚洲欧洲无码久久| 亚洲色成人四虎在线观看| 日本最新免费不卡二区在线| 久久久久亚洲精品无码网址色欲 | 免费精品国产日韩热久久| 亚洲中文无码亚洲人成影院| 免费大片在线观看网站| 欧洲 亚洲 国产图片综合| 97公开免费视频| 亚洲电影一区二区| 免费做爰猛烈吃奶摸视频在线观看| 91免费国产在线观看| 精品亚洲成在人线AV无码| 日韩精品电影一区亚洲| 亚洲大码熟女在线观看| 亚洲无码高清在线观看| 美丽的姑娘免费观看在线播放| 亚洲av成人片在线观看| 亚洲成AV人片在线观看无|