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

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

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

    隨筆-86  評論-767  文章-3  trackbacks-3

    《Ajax開發(fā)簡略》發(fā)布以來,經(jīng)常收到網(wǎng)友的求助郵件。由于eamoi時間有限,不能一一及時解答。建議大家把代碼在此跟帖,能幫助解決問題的朋友也可以隨后提出解決辦法。
    此注。

    posted on 2006-03-09 10:21 eamoi 閱讀(8655) 評論(37)  編輯  收藏 所屬分類: AJAX

    評論:
    # re: Ajax應(yīng)用問題求助匯總 2006-03-09 10:35 | 冷月宮主
    現(xiàn)在由于在做一個項(xiàng)目,看了《AJAX開發(fā)簡略》,因此也想將AJAX應(yīng)用到項(xiàng)目中,誰知出問題了,在取數(shù)據(jù)時用responseText可以正常返回數(shù)據(jù),但用responseXML返回就出問題了,我本意是想返回XML數(shù)據(jù),在前臺再用javascript做處理,但用responseText可以得到返回的數(shù)據(jù),用responseXML就是得不到,不過也許是得到了,用getElementsByTagName取不出其中的數(shù)據(jù)。上面的情況我在weblogic9.1下運(yùn)行出現(xiàn)的錯誤,同樣代碼,我放到tomcat5.5下做測試就完全正常。另外,我有一個經(jīng)驗(yàn)就是“response.setCharacterEncoding("UTF8");”針對weblogic8.1是不認(rèn)得的編譯無法通過(我用的JB2006),改成weblogic9.1就可以了。

    現(xiàn)在把我的測試文檔貼到下面:

    XML文檔(test.xml):
    <?xml version="1.0" encoding="UTF-8" ?>
    <states>
    <north>
    <state>Minnesota</state>
    <state>Iowa</state>
    <state>North Dakota</state>
    </north>
    <south>
    <state>Texas</state>
    <state>Oklahoma</state>
    <state>Louisiana</state>
    </south>
    <east>
    <state>New York</state>
    <state>North Carolina</state>
    <state>Massachusetts</state>
    </east>
    <west>
    <state>California</state>
    <state>Oregon</state>
    <state>Nevada</state>
    </west>
    </states>

    HTML文件(test.html):
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script type="text/javascript" language="javascript">

    var http_request = false;

    function makeRequest(url) {

    http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
    http_request.overrideMimeType('text/xml');
    }
    } else if (window.ActiveXObject) { // IE
    try {
    http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {}
    }
    }

    if (!http_request) {
    alert('Giving up :( Cannot create an XMLHTTP instance');
    return false;
    }
    http_request.onreadystatechange = alertContents;
    http_request.open('GET', url, true);
    http_request.send(null);

    }

    function alertContents() {

    if (http_request.readyState == 4) {
    if (http_request.status == 200) {
    alert(http_request.responseText);
    var xmldoc = http_request.responseXML;
    alert(xmldoc);
    var states = xmldoc.getElementsByTagName('state');
    alert(states);
    outputList("輸出結(jié)果:", states);
    } else {
    alert('There was a problem with the request.');
    }
    }

    }
    function outputList(title, states) {
    var out = title;
    var currentState = null;
    for(var i = 0; i < states.length; i++) {
    currentState = states[i];
    out = out + "\n- " + currentState.childNodes[0].nodeValue;
    }

    alert(out);
    }
    </script>
    </head>
    <body>
    <span
    style="cursor: pointer; text-decoration: underline"
    onclick="makeRequest('test.xml')">
    Make a request
    </span>
    </body>
    </html>

    希望幫我找找原因,謝謝!  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-09 13:11 | hwlcsx@sina.com
    我現(xiàn)在有一個簡單的登陸程序有問題需要問一下
    程序列表如下: login.html 一個server.jsp
    login.html中的代碼非常普通.幾乎就是你給出的教程例子.
    當(dāng)server.jsp驗(yàn)證出錯誤后使用out.print("xxx")可以將信息返回到login.jsp
    我想問有什么比較完美的做法可以在當(dāng)server.jsp驗(yàn)證通過后通知login.jsp該轉(zhuǎn)向下一個頁面
    也就是說
    <!-- login.jsp -->
    if (http_request.readyState == 4) {
    if (http_request.status == 200) {
    alert(http_request.responseText);
    <!--A-->
    } else {
    alert('There was a problem with the request.');
    }
    }
    就是在A處怎么才能跳轉(zhuǎn)下一個頁面呢.或者在其他地方跳也可以.只要能跳轉(zhuǎn)就行.


    我試過在login.jsp加一個<div id="msg"></div>
    在代碼A處寫出
    var obj = document.getElementById("msg");
    obj.innerHTML=http_request.responseText;
    在server.jsp中如果驗(yàn)證通過的話使用
    out.print("<javascript type=\"text/javascript\">location.replace('index.html')<\script>");

    其實(shí)結(jié)果就是在login.jsp中
    <div id="msg">
    <javascript type="text/javascript">
    location.replace('index.html')
    <\script>
    </div>

    后來我試過不行.因?yàn)轫撁鏇]有理睬剛寫入的腳本.原因我也理解了為什么沒有執(zhí)行.

    現(xiàn)在就是沒有好方法實(shí)現(xiàn).不知道有沒有可行的方法???謝謝

      回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-09 13:31 | 胡子魚
    TO: 冷月宮主

    有中文字符的情況,對吧?  回復(fù)  更多評論
      
    # re: 與冷月宮主關(guān)于1樓問題的MSN實(shí)錄 2006-03-09 13:40 | eamoi
    10:42:15 Kezc-- responseText顯示正常,responseXML顯示不出來?
    10:42:31 冷月宮主 是的
    10:42:57 Kezc-- 會不會是utf-8編碼的問題??赡苁荄OM無法識別你返回的XML文檔。
    10:43:35 冷月宮主 噢,與服務(wù)器有關(guān)嗎?
    10:43:45 冷月宮主 我只要改文件就行了吧?
    10:43:48 冷月宮主 我試試
    10:44:02 Kezc-- 編碼與服務(wù)器有關(guān)。建議將XML文檔編碼改為GB2312試試看。
    10:44:24 冷月宮主 好的,我試

    10:46:36 冷月宮主 改成:
    <?xml version="1.0" encoding="GB2312" ?> 也不行

    10:47:27 Kezc-- alert(xmldoc) 是什么結(jié)果?
    10:47:53 冷月宮主 object
    10:48:42 冷月宮主 states.length為0
    10:49:32 Kezc-- responseXML返回的結(jié)果不是XML文檔,DOM解析不到。
    這種問題我也經(jīng)常碰到。
    10:49:55 冷月宮主 噢,可能是這個問題
    10:50:00 Kezc-- 也可能是緩存的原因。Ajax使用了緩存機(jī)制。
    10:50:09 冷月宮主 那是格式問題還是我用錯了?
    10:50:36 冷月宮主 噢,對于傳的XML文件怎么解決?
    10:50:40 Kezc-- 修改XML文檔編碼方式后,重新啟動一下服務(wù)器和瀏覽器試試看。
    10:51:57 冷月宮主 噢,好的,再者,我也發(fā)現(xiàn),你如果改了XML文件的話,必須重新找開瀏覽器才能請出新的XML文件
    10:52:15 冷月宮主 不過我沒有重啟服務(wù)器去試
    10:52:21 Kezc-- 是。我覺得是Ajax的緩存機(jī)制的問題。
    10:53:28 冷月宮主 在servlet中放入response.setHeader("Cache-Control", "no-cache");就是解決緩存問題的吧?
    10:53:55 Kezc-- 應(yīng)該是。
    10:54:57 冷月宮主 噢,我文件改為:<?xml version="2.0" encoding="GB2312" ?>

    重啟了weblogic還是不行

    10:55:21 Kezc--奇怪,xml的version不是都為1.0么?
    10:55:54 冷月宮主 不好意思,我剛才隨意改了一下,想試工序

    10:57:49 冷月宮主 現(xiàn)在我至少明白了,表示現(xiàn)在responseXML不是XML文檔,它解析不出來
    10:58:12 Kezc-- 當(dāng)然。DOM不是萬能的。
    10:59:29 冷月宮主 這個東東很淘氣,問題是在我另一個tomcat服務(wù)器上是正常的
    11:00:17 冷月宮主 還有,會不會與javascript部分的dom版本有關(guān)?
    11:00:44 冷月宮主 try {
    http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch {
    try {
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch {}
    }
    }

    11:01:18 Kezc-- 那也應(yīng)該與瀏覽器有關(guān),跟服務(wù)器無關(guān)。排除
    11:02:30 冷月宮主 噢,實(shí)在沒招了
    11:16:34 Kezc-- 我要在Weblogic里面測試一下。Tomcat是應(yīng)該沒問題的。代碼我看過了。
    11:17:25 冷月宮主 好的,不知你裝weblogic沒有,如果沒有的話要害你裝了,哈哈
    11:18:04 Kezc-- 有,8.1的
    11:18:05 冷月宮主 對了,我的是weblogic9.1中文版
    11:18:23 Kezc-- 9.1就沒有了。你都測試過了,我就不測試了。
    11:18:32 冷月宮主 噢,我也試試8.1看行不行

    11:29:32 冷月宮主 我試了一下8.1+SP4中文也不行   回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-09 14:06 | Freedom
    @冷月宮主
    @hwlcsx@sina.com
    可能是在返回數(shù)據(jù)時沒有設(shè)置
    response.setContentType("text/xml");  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-09 14:36 | 冷月宮主
    to 胡子魚:我上面給出的測試文件沒有中文,上面我給出的測試文件是完整的,你可以存下來試試,幫我看看,謝謝!

    to Freedom:因我是取服務(wù)器上的XML文件,你看,是直接傳入的XML文件名,那你這句加在那兒?另外,我也試了Servlet,我是這樣寫的:
    ...
    private static final String CONTENT_TYPE = "text/xml; charset=gb2312";
    ...
    response.setContentType(CONTENT_TYPE);
    ...

    傳回來的結(jié)果也是和我上面說我情況一模一樣!

    謝謝你的關(guān)注?。?!  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-09 15:21 | 冷月宮主
    一個另類的解決辦法:

    retXml=http_request.responseText;
    var OrgDoc = new ActiveXObject('Microsoft.XMLDOM');
    OrgDoc.async = false;
    OrgDoc.loadXML(retXml);
    var root = OrgDoc.documentElement;
    NodeLists = root.childNodes;
    for (var i=0; i<NodeLists.length; i++)
    {
    Item = NodeLists.item(i);
    //for(int j=0;j<Item.childNodes.length;j++){
    alert(Item.childNodes(0).text);
    //}
    }
      回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-09 17:32 | 鄒慧明
    @冷月宮主
    @hwlcsx@sina.com
    用WINDOW.OPEN 不行嗎  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-09 19:15 | 冷月宮主
    @鄒慧明
    WINDOW.OPEN?我的代碼可用不到吧?  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-10 10:51 | hwlcsx@sina.com
    window.open不能用,因?yàn)槭菑棾霭?
    我需要的是跳轉(zhuǎn).整個頁面的轉(zhuǎn)向.
    而且重要的是無法判斷什么時候該用obj.innerHTML= responseText什么時候該用window.open...
    因?yàn)闊o法判斷server.jsp返回的數(shù)據(jù)的具體狀態(tài).他們都是readyState=4&&status=200/////  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-10 11:19 | eamoi-no_login
    to hwlcsx@sina.com

    obj.innerHTML=http_request.responseText;
    的代碼可以更改為:
    eval(http_request.responseText);

    試試看。

    或許有一種更加復(fù)雜但是可行的方法:將server.jsp的返回數(shù)據(jù)組織成為一個XML文檔,這個XML文檔可以包含請求狀態(tài)、跳轉(zhuǎn)目標(biāo)URL等信息。而在login.jsp中使用responseXML獲取這個XML文檔,根據(jù)XML文檔中的相關(guān)信息做跳轉(zhuǎn)或者其他處理。

    PS:建議測試一下看是否可行。

    by:eamoi  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-10 11:26 | eamoi
    如果使用eval(http_request.responseText); ,那么server.jsp的
    out.print("<javascript type=\"text/javascript\">location.replace('index.html')<\script>");
    可以簡單的這么寫:
    out.println("location.replace('index.html');"); ,即去除<script>之類的聲明語句。  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-10 12:10 | hwlcsx@sina.com
    如果使用eval函數(shù),那么我該怎么確定該在什么時候使用obj.innerHTML什么時候該使用eval()呢?
    如果替換的話那么如果驗(yàn)證錯誤的話,server.jsp返回的提示信息使用eval()函數(shù)能否顯示在我指定的<div id="msg"></div>標(biāo)簽中呢.

    剛才這段時間我想出一個解決辦法.
    就是在server.jsp驗(yàn)證通過后設(shè)置httpresponse.status使他不等于200
    而是等于302/// w3c的httpresponse.status狀態(tài)規(guī)定302代表類似與response.sendRediect(),也就是重定向.
    那么我的代碼可以改成
    if(httpResponse.status == 200){
    obj.innerHTML = ....;
    }else(httpResponse.status == 302){
    location.replace(request.responseText);
    }
    因?yàn)榭梢栽隍?yàn)證通過后將要跳轉(zhuǎn)的頁面地址寫入request.responseText..
    還可以起到隱藏真實(shí)重定向地址的好處.
    還同時想到了好幾種方法,還不知道那種可行那種更好用... -_-!  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-10 12:18 | hwlcsx@sina.com
    將server.jsp的返回數(shù)據(jù)組織成為一個XML文檔...這個思路我想屏棄掉.
    因?yàn)榈顷懯且粋€要求速度的操作請求.在安全的前提下越快越好.
    如果采用解析xml的方式將會同時增加客戶端的的解析速度和服務(wù)端生成相應(yīng)xml的速度.當(dāng)然其實(shí)速度是可以很快的,慢只是相對的.
    所以優(yōu)先考慮其他處理方式.
    謝謝你的幫助...  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-13 14:04 | hwlcsx@sina.com
    試完了.一半失敗一般成功.
    因?yàn)槌绦驔]有象我當(dāng)初預(yù)想的那樣進(jìn)行下去.
    在server.jsp中使用response.setStatus(302);之后似乎tomcat進(jìn)行了一些處理,響應(yīng)流并沒有直接返回到login.jsp,好象被tomcat處理了一下,所以httpResponse對象沒有拿到正確的status.而實(shí)際上status等于12150,并不是302.最后嘗試結(jié)果使用response.setStatus(206)可以將響應(yīng)流直接返回到login.jsp.但是login.jsp中的javascript不能使用httpResponse.status ==206),因?yàn)檫@個標(biāo)志也是得不到的.
    最后改成
    if(httpResponse.status == 200){
    obj.innerHTML = ....;
    }else{
    nextpage(); //B
    }
    在//B方法中可以使用http_request.responseText得到server.jsp返回的信息.并且進(jìn)行跳轉(zhuǎn).... 雖然實(shí)現(xiàn)了功能實(shí)在是無奈的辦法... 再嘗試其他的吧.

    那位仁兄有好的想法還望轉(zhuǎn)告一聲  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-23 01:29 | 寒心月
    你好,我想知道send方法的是怎么使用的。  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-26 20:18 | 冷月宮主
    關(guān)于我的那個問題,現(xiàn)在的狀況是:如果那樣取XML文件的話在tomcat下確實(shí)是可以取,但在weblogic下怎么也取不出來,也就是取出來的,它不認(rèn)為那是一樣XML文檔無法解析,也是我懶,我沒有直接servlet直接來生成一個XML格式的文檔測試,實(shí)驗(yàn)證明,如果那個XML文檔是在servlet中用out.write()的形式輸出的話在頁面上就可以正常取了,原因沒搞明白,但問題解決了,實(shí)際上,我也正是要在servlet中生成XML文檔,但當(dāng)時是為了測試才拿一個XML文件來做,就卡在那兒了,唉。。。

    謝謝各位的關(guān)注,也謝謝blog的主人?。?!  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-31 13:46 | eDust
    字符編碼問題!  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-31 14:15 | eamoi
    關(guān)于Ajax中文編碼問題,在《Ajax開發(fā)精要:概念、案例與框架》中有專門的章節(jié)介紹,并提供相應(yīng)的解決方案。  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-03-31 22:49 | 陳秦
    不錯,不錯,學(xué)習(xí)中。。。。  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-04-25 12:48 | Winter
    通過ajax客戶端調(diào)用web服務(wù),獲得返回值,已經(jīng)成功。返回值為一個字段和一個xml
    以上操作已成功?,F(xiàn)在的問題是:想將返回的xml轉(zhuǎn)為一張表格。頁面代碼如下:
    <html>
    <head>
    <script type="text/javascript" src="scripts/prototype.js"></script>
    <script type="text/javascript" src="scripts/ws.js"></script>
    <script type="text/javascript">
    function sayHello(name, container) {
    var call = new WS.Call('/AjaxWS/services/HelloWorld');
    var nsuri = 'http://example';
    var qn_op = new WS.QName('sayHello',nsuri);
    var qn_op_resp = new WS.QName('sayHelloResponse',nsuri);
    call.invoke_rpc(
    qn_op,
    new Array(
    {name:'name',value:name}
    ),null,
    function(call,envelope) {
    var ret =
    envelope.get_body().get_all_children()[0].get_all_children()[0].get_value();
    container.innerHTML = ret;
    $('soap').innerHTML = arguments[2].escapeHTML();
    }
    );
    }
    </script>
    <style>
    body {
    font-family: verdana;
    }
    #container {
    margin: 10pt;
    border: 1pt solid black;
    padding: 2pt;
    }
    #result {
    padding: 5pt;
    background-color: #eeeeee;
    }
    #soap {
    padding: 5pt;
    background-color: #eeeeee;
    font-size: 10pt;
    }
    </style>
    </head>
    <body>
    <input name="name" id="name" />
    <input value="Invoke the Web Service"
    type="button"
    onclick="sayHello($('name').value,$('result'))" />
    <div id="container">Result:
    <div id="result">
    </div>
    <div id="soap">
    </div>
    </div>
    </body>
    </html>

    其中用到兩個.js文件,見下文  回復(fù)  更多評論
      
    # 接上文 2006-04-25 12:51 | Winter
    第一個ws.js,摘要代碼如下:

    var XML = {
    createDocumentQName : function(qname) {
    return XML.createDocument(qname.namespace,qname.value_of());
    },
    createDocument : function(namespace,nodename) {
    return Try.these(
    function() {
    var doc = new ActiveXObject('Msxml2.XMLDOM');
    var root = XML.createElementNS(doc, nodename, namespace);
    doc.documentElement = root;
    return doc;
    },
    function() {
    var doc = new ActiveXObject('Microsoft.XMLDOM')
    var root = XML.createElementNS(doc, nodename, namespace);
    doc.documentElement = root;
    return doc;
    },
    function() {
    return document.implementation.createDocument(
    namespace,
    nodename,
    null)
    }
    ) || false;
    },
    createElementNS : function(document,nodename,namespace) {
    var el = Try.these(
    function() {
    var el = null;
    if (namespace) {
    el = document.createNode(1,nodename,namespace);
    } else {
    el = document.createNode(1,nodename,"");
    }
    return el;
    },
    function() {
    var el = null;
    if (namespace) {
    el = document.createElementNS(namespace,nodename);
    } else {
    el = document.createElement(nodename);
    }
    return el;
    }
    ) || false;
    return el;
    },
    createElementQName : function(document,qname) {
    return XML.createElementNS(document,qname.value_of(),qname.namespace);
    },
    createAttributeNS : function(document,nodename,namespace,value) {
    var attr = Try.these(
    function() { return document.createNode(2,nodename,namespace)},
    function() { return document.createAttributeNS(namespace,nodename)}
    ) || false;
    attr.nodeValue = value;
    return attr;
    },
    createAttributeQName : function(document,qname,value) {
    return XML.createAttributeNS(document,qname.value_of(),qname.namespace,value);
    },
    createAttribute : function(document,nodename,value) {
    var attr = Try.these(
    function() { return document.createNode(2, nodename)},
    function() { return document.createAttribute(nodename)}
    ) || false;
    attr.nodeValue = value;
    return attr;
    },
    createText : function(document,value) {
    var node = Try.these(
    function() { return document.createTextNode(value) }
    ) || false;
    return node;
    },
    createCDATA : function(document,value) {
    var node = Try.these(
    function() { return document.createCDATASection(value) }
    ) || false;
    return node;
    },
    getElementsByQName : function(element, qname) {
    var nl = null;
    if(!element.getElementsByTagNameNS) {
    nl = new Array();
    var nodes = element.getElementsByTagName(qname.value_of());
    for (var n = 0; n < nodes.length; n++) {
    if (nodes[n].namespaceURI == qname.namespace) {
    nl.push(nodes[n]);
    }
    }
    } else {
    nl = element.getElementsByTagNameNS(qname.namespace,qname.localpart);
    }
    return nl;
    }
    }  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-04-25 12:52 | Winter
    SOAP.Envelope = Class.create();
    SOAP.Envelope.QNAME = new WS.QName('Envelope',SOAP.URI);
    SOAP.Envelope.prototype = (new SOAP.Element()).extend({
    initialize : function() {
    var element = arguments[0];
    if (!element) {
    var document =
    XML.createDocumentQName(SOAP.Envelope.QNAME);
    element = document.documentElement;
    }
    this.initialize_internal(element);
    },
    set_value : null,
    get_value : null,
    create_child : null,
    create_header : function() {
    if (!this.has_header()) {
    var doc = this.element.ownerDocument;
    var el = XML.createElementQName(doc, SOAP.Header.QNAME);
    if (this.element.firstChild) {
    this.element.insertBefore(el, this.element.firstChild);
    } else {
    this.element.appendChild(el);
    }
    var ret = new SOAP.Header(el);
    return ret;
    } else {
    return this.get_header();
    }
    },
    get_header : function() {
    var val = null;
    for (var n = 0; n < this.element.childNodes.length; n++) {
    if (this.element.childNodes[n].nodeType == 1) {
    var el = this.element.childNodes[n];
    if (SOAP.Header.QNAME.equals(WS.QName.fromElement.bind2(el)())) {
    val = new SOAP.Header(el);
    break;
    }
    }
    }
    return val;
    },
    has_header : function() {
    var val = null;
    for (var n = 0; n < this.element.childNodes.length; n++) {
    if (this.element.childNodes[n].nodeType == 1) {
    var el = this.element.childNodes[n];
    if (SOAP.Header.QNAME.equals(WS.QName.fromElement.bind2(el)())) {
    val = true;
    break;
    }
    }
    }
    return val;
    },
    create_body : function() {
    if (!this.has_body()) {
    var doc = this.element.ownerDocument;
    var el = XML.createElementQName(doc, SOAP.Body.QNAME);
    this.element.appendChild(el);
    var ret = new SOAP.Body(el);
    return ret;
    } else {
    return this.get_body();
    }
    },
    get_body : function() {
    var val = null;
    for (var n = 0; n < this.element.childNodes.length; n++) {
    if (this.element.childNodes[n].nodeType == 1) {
    var el = this.element.childNodes[n];
    if (SOAP.Body.QNAME.equals(WS.QName.fromElement.bind2(el)())) {
    val = new SOAP.Body(el);
    break;
    }
    }
    }
    return val;
    },
    has_body : function() {
    var val = null;
    for (var n = 0; n < this.element.childNodes.length; n++) {
    if (this.element.childNodes[n].nodeType == 1) {
    var el = this.element.childNodes[n];
    if (SOAP.Body.QNAME.equals(WS.QName.fromElement.bind2(el)())) {
    val = true;
    break;
    }
    }
    }
    return val;
    }
    });  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總 2006-05-10 17:30 | gunson
    @冷月宮主

    我的客戶端請求一個url,該url將打印一個xml內(nèi)容,但是在客戶端接受時,使用responseXML無法解析.但是responseText可以得到這個xml內(nèi)容。

    還是這個方法好用,先定一個DOM對象,然后使用loadXML方法將responseText的內(nèi)容加載進(jìn)去,這樣這個DOM就可以對xml內(nèi)容進(jìn)行解析了~~
    好用?。?

    沾了個光,正好為這個問題發(fā)愁呢?

    大家一起加油吧?。。?nbsp; 回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總&《Ajax開發(fā)精要》反饋 2006-05-12 08:58 | steven
    新增分頁查詢案例(包括《Ajax開發(fā)精要》中的兩個綜合案例) 2006-05-11 16:38 | steven
    我下載了包包部署好后,運(yùn)行正常,但運(yùn)行簡單的Ajax留言簿時,多留幾次言就報錯,提示“您請求的頁面有異?!?
    Tomcat 就死掉了
    org.apache.jasper.JasperException: Unable to compile class for JSP

    An error occurred at line: -1 in the jsp file: null

    Generated servlet error:
    [javac] Compiling 1 source file

    E:\Tomcat4127\temp\message\ajaxMessage_jsp.java:7: package com.eamoi.ajax does not exist
    import com.eamoi.ajax.*;   回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總&《Ajax開發(fā)精要》反饋 2006-05-28 21:56 | showsen
    作者你好,我今天剛買了你的書《Ajax開發(fā)精要》,你可否給我書中的代碼?  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總&《Ajax開發(fā)精要》反饋 2006-05-29 08:15 | eamoi
    書中的源碼可以在博文視點(diǎn)公司的網(wǎng)站上下載得到。地址:
    http://www.broadview.com.cn

    http://www.broadview.com.cn/download.aspx?bookid={E7A05E97-9916-48FC-9C31-91836A0A7ACB}  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總&《Ajax開發(fā)精要》反饋 2006-06-21 16:53 | czd000@163.com
    你好,我是ajax初學(xué)者
    ,看了您寫的書收獲很大,有一個問題想問你。在客戶端的html頁面中用ajax發(fā)送請求到一個jsp頁面,jsp頁面處理完后用out.println(“This is my jsp page”)返回結(jié)果,在客戶端頁面得到的responseText為什么包含html代碼?如下This is my jsp page才是我應(yīng)該得到的結(jié)果,情給予指點(diǎn),謝謝?。?
    <html>
    <head>
    <base href="http://localhost:8080/tteesstt/">

    <title>My JSP 'test.jsp' starting page</title>

    </head>

    <body>
    This is my JSP page.

    </body>
    </html>
      回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總&《Ajax開發(fā)精要》反饋 2006-06-21 16:56 | czd000@163.com
    如何才能在客戶端得到的reaponseText中的內(nèi)容只是This is my JSP page這一句,而不包含其他的html代碼?  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總&《Ajax開發(fā)精要》反饋 2006-07-12 15:16 | gary
    諸位大哥,小弟剛剛接觸ajax,有個小問題,想請教各位專家,希望大家?guī)蛶兔?
    我聲明XMLHttpRequest后調(diào)用另一個服務(wù)器端代碼,但是status碼提示為0
    不是回應(yīng)的200,這是為什么???現(xiàn)將主要客戶端代碼寫在下面:
    <script type="text/javascript">
    var xmlHttp;
    function createXMLHttpRequest()
    {
    if (window.ActiveXObject)
    {
    xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
    }
    else if (window.XMLHttpRequest)
    {
    xmlHttp = new XMLHttpRequest();
    }
    }

    function handleStateChange()
    {
    if (xmlHttp.readyState == 4)
    {
    if (xmlHttp.status == 200)
    {
    parseResults();
    }
    }
    }


    function inputTest()
    {
    createXMLHttpRequest();
    var queryString = "GetAndPostExample?timeStamp=" + new Date().getTime();
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.open("GET", queryString, true);
    xmlHttp.send(null);

    var responsetest = xmlHttp.readyState + "and" + xmlHttp.status + "\r";
    var responseDiv = document.getElementById("serverResponse");
    var responseText = document.createTextNode(responsetest);
    responseDiv.appendChild(responseText);
    }
    </script>  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總&《Ajax開發(fā)精要》反饋 2006-08-16 14:45 | sunson
    為什么在ajax中引用Servlet時老是出現(xiàn)404錯誤?  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總&《Ajax開發(fā)精要》反饋 2006-08-16 14:45 | sunson
    為什么在ajax中引用Servlet時老是出現(xiàn)404錯誤?  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總&《Ajax開發(fā)精要》反饋 2006-08-16 14:45 | sunson
    為什么在ajax中引用Servlet時老是出現(xiàn)404錯誤?  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總&《Ajax開發(fā)精要》反饋 2006-09-03 06:07 | 邱俊
    您好,我用ajax+xml+asp 做blog是遇到這樣的問題
    asp返回一個xml文件,在客戶端用js解析,
    返回的xml文件無法解析,又沒有報錯,xml是用的responseXML得到的,用responseText測試知道xml文件已經(jīng)返回到客戶端,
    xml文件:
    <?xml version="1.0" encoding="gb2312" ?>
    <articles>
    <className>INDEX</className>
    <article>
    <title>《暫停的故事》我很喜歡聽的一首歌</title>
    <pubdate>Pubdate : 2006-6-13 23:41:30|Count : 14</pubdate>
    </article>
    </articles>

    http_request.responseXML.getElementsByTagName("article").length 得到的值總是0,應(yīng)該是1才對,
    不知道是什么原因,望請賜教?。?
      回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總&《Ajax開發(fā)精要》反饋 2006-09-03 06:13 | 邱俊
    接上文,當(dāng)不采用asp返回的xml文件,直接讀已經(jīng)存在的而且內(nèi)容一樣xml文件時,又全部正確。@冷月宮主
      回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總&《Ajax開發(fā)精要》反饋 2007-01-25 17:52 | xu may
    用ajax,返回readyState為1,測試了一下,當(dāng)readyState為1,2,3,4時,分別彈出警告,報告readyState的狀態(tài),是什么原因?qū)е虏恢苯拥??  回復(fù)  更多評論
      
    # re: Ajax應(yīng)用問題求助匯總&《Ajax開發(fā)精要》反饋 2008-02-29 17:33 | 我愛百合
    我以循環(huán)方式請求XMLHttpRequest(AJAX)
    現(xiàn)在遇到一個問題
    第一次請求的數(shù)據(jù)還沒有返回,我第二次請求就發(fā)出了(第二次請求和上一次請求的結(jié)果有關(guān))

    大家說說這種情況該怎么處理??   回復(fù)  更多評論
      
    主站蜘蛛池模板: 亚洲a无码综合a国产av中文| 亚洲成色在线综合网站 | 亚洲国产综合专区在线电影| 亚洲日韩在线第一页| 又粗又大又猛又爽免费视频| 免费一级做a爰片久久毛片潮喷| 四虎免费久久影院| 全部免费a级毛片| 亚洲精品国产综合久久一线| 亚洲高清免费视频| 国产亚洲精品资在线| 中文字幕日韩亚洲| 国产亚洲精品自在久久| 久久久无码精品亚洲日韩蜜桃| 久久亚洲美女精品国产精品| 亚洲国产成人久久99精品| 亚洲三级在线视频| 亚洲av无码专区在线电影天堂| 偷自拍亚洲视频在线观看99| 国产免费久久久久久无码| 两个人看的www免费视频| 日本在线免费观看| 亚洲一级毛片免费观看| 无码人妻一区二区三区免费| 四虎在线免费播放| 亚洲精品A在线观看| 国产av无码专区亚洲av桃花庵| 亚洲精品一卡2卡3卡三卡四卡| 亚洲 欧洲 日韩 综合在线| 亚洲AV噜噜一区二区三区| 一级毛片免费播放视频| 无码少妇精品一区二区免费动态| 日本免费一区二区在线观看| 永久免费AV无码网站在线观看| 亚洲国产成人久久综合碰| 好看的亚洲黄色经典| 亚洲精品中文字幕无乱码麻豆| 国产成人人综合亚洲欧美丁香花| 国产福利免费视频 | 免费的一级黄色片| 亚洲人成网站在线观看青青|