<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開發簡略》發布以來,經常收到網友的求助郵件。由于eamoi時間有限,不能一一及時解答。建議大家把代碼在此跟帖,能幫助解決問題的朋友也可以隨后提出解決辦法。
    此注。

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

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

    現在把我的測試文檔貼到下面:

    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("輸出結果:", 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>

    希望幫我找找原因,謝謝!  回復  更多評論
      
    # re: Ajax應用問題求助匯總 2006-03-09 13:11 | hwlcsx@sina.com
    我現在有一個簡單的登陸程序有問題需要問一下
    程序列表如下: login.html 一個server.jsp
    login.html中的代碼非常普通.幾乎就是你給出的教程例子.
    當server.jsp驗證出錯誤后使用out.print("xxx")可以將信息返回到login.jsp
    我想問有什么比較完美的做法可以在當server.jsp驗證通過后通知login.jsp該轉向下一個頁面
    也就是說
    <!-- 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處怎么才能跳轉下一個頁面呢.或者在其他地方跳也可以.只要能跳轉就行.


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

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

    后來我試過不行.因為頁面沒有理睬剛寫入的腳本.原因我也理解了為什么沒有執行.

    現在就是沒有好方法實現.不知道有沒有可行的方法???謝謝

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

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

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

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

    重啟了weblogic還是不行

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

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

    11:01:18 Kezc-- 那也應該與瀏覽器有關,跟服務器無關。排除
    11:02:30 冷月宮主 噢,實在沒招了
    11:16:34 Kezc-- 我要在Weblogic里面測試一下。Tomcat是應該沒問題的。代碼我看過了。
    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中文也不行   回復  更多評論
      
    # re: Ajax應用問題求助匯總 2006-03-09 14:06 | Freedom
    @冷月宮主
    @hwlcsx@sina.com
    可能是在返回數據時沒有設置
    response.setContentType("text/xml");  回復  更多評論
      
    # re: Ajax應用問題求助匯總 2006-03-09 14:36 | 冷月宮主
    to 胡子魚:我上面給出的測試文件沒有中文,上面我給出的測試文件是完整的,你可以存下來試試,幫我看看,謝謝!

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

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

    謝謝你的關注!!!  回復  更多評論
      
    # re: Ajax應用問題求助匯總 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);
    //}
    }
      回復  更多評論
      
    # re: Ajax應用問題求助匯總 2006-03-09 17:32 | 鄒慧明
    @冷月宮主
    @hwlcsx@sina.com
    用WINDOW.OPEN 不行嗎  回復  更多評論
      
    # re: Ajax應用問題求助匯總 2006-03-09 19:15 | 冷月宮主
    @鄒慧明
    WINDOW.OPEN?我的代碼可用不到吧?  回復  更多評論
      
    # re: Ajax應用問題求助匯總 2006-03-10 10:51 | hwlcsx@sina.com
    window.open不能用,因為是彈出啊.
    我需要的是跳轉.整個頁面的轉向.
    而且重要的是無法判斷什么時候該用obj.innerHTML= responseText什么時候該用window.open...
    因為無法判斷server.jsp返回的數據的具體狀態.他們都是readyState=4&&status=200/////  回復  更多評論
      
    # re: Ajax應用問題求助匯總 2006-03-10 11:19 | eamoi-no_login
    to hwlcsx@sina.com

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

    試試看。

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

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

    by:eamoi  回復  更多評論
      
    # re: Ajax應用問題求助匯總 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>之類的聲明語句。  回復  更多評論
      
    # re: Ajax應用問題求助匯總 2006-03-10 12:10 | hwlcsx@sina.com
    如果使用eval函數,那么我該怎么確定該在什么時候使用obj.innerHTML什么時候該使用eval()呢?
    如果替換的話那么如果驗證錯誤的話,server.jsp返回的提示信息使用eval()函數能否顯示在我指定的<div id="msg"></div>標簽中呢.

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

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

    謝謝各位的關注,也謝謝blog的主人!!!  回復  更多評論
      
    # re: Ajax應用問題求助匯總 2006-03-31 13:46 | eDust
    字符編碼問題!  回復  更多評論
      
    # re: Ajax應用問題求助匯總 2006-03-31 14:15 | eamoi
    關于Ajax中文編碼問題,在《Ajax開發精要:概念、案例與框架》中有專門的章節介紹,并提供相應的解決方案。  回復  更多評論
      
    # re: Ajax應用問題求助匯總 2006-03-31 22:49 | 陳秦
    不錯,不錯,學習中。。。。  回復  更多評論
      
    # re: Ajax應用問題求助匯總 2006-04-25 12:48 | Winter
    通過ajax客戶端調用web服務,獲得返回值,已經成功。返回值為一個字段和一個xml
    以上操作已成功。現在的問題是:想將返回的xml轉為一張表格。頁面代碼如下:
    <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文件,見下文  回復  更多評論
      
    # 接上文 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;
    }
    }  回復  更多評論
      
    # re: Ajax應用問題求助匯總 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;
    }
    });  回復  更多評論
      
    # re: Ajax應用問題求助匯總 2006-05-10 17:30 | gunson
    @冷月宮主

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

    還是這個方法好用,先定一個DOM對象,然后使用loadXML方法將responseText的內容加載進去,這樣這個DOM就可以對xml內容進行解析了~~
    好用!!

    沾了個光,正好為這個問題發愁呢?

    大家一起加油吧!!!  回復  更多評論
      
    # re: Ajax應用問題求助匯總&《Ajax開發精要》反饋 2006-05-12 08:58 | steven
    新增分頁查詢案例(包括《Ajax開發精要》中的兩個綜合案例) 2006-05-11 16:38 | steven
    我下載了包包部署好后,運行正常,但運行簡單的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.*;   回復  更多評論
      
    # re: Ajax應用問題求助匯總&《Ajax開發精要》反饋 2006-05-28 21:56 | showsen
    作者你好,我今天剛買了你的書《Ajax開發精要》,你可否給我書中的代碼?  回復  更多評論
      
    # re: Ajax應用問題求助匯總&《Ajax開發精要》反饋 2006-05-29 08:15 | eamoi
    書中的源碼可以在博文視點公司的網站上下載得到。地址:
    http://www.broadview.com.cn

    http://www.broadview.com.cn/download.aspx?bookid={E7A05E97-9916-48FC-9C31-91836A0A7ACB}  回復  更多評論
      
    # re: Ajax應用問題求助匯總&《Ajax開發精要》反饋 2006-06-21 16:53 | czd000@163.com
    你好,我是ajax初學者
    ,看了您寫的書收獲很大,有一個問題想問你。在客戶端的html頁面中用ajax發送請求到一個jsp頁面,jsp頁面處理完后用out.println(“This is my jsp page”)返回結果,在客戶端頁面得到的responseText為什么包含html代碼?如下This is my jsp page才是我應該得到的結果,情給予指點,謝謝!!
    <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>
      回復  更多評論
      
    # re: Ajax應用問題求助匯總&《Ajax開發精要》反饋 2006-06-21 16:56 | czd000@163.com
    如何才能在客戶端得到的reaponseText中的內容只是This is my JSP page這一句,而不包含其他的html代碼?  回復  更多評論
      
    # re: Ajax應用問題求助匯總&《Ajax開發精要》反饋 2006-07-12 15:16 | gary
    諸位大哥,小弟剛剛接觸ajax,有個小問題,想請教各位專家,希望大家幫幫忙
    我聲明XMLHttpRequest后調用另一個服務器端代碼,但是status碼提示為0
    不是回應的200,這是為什么啊?現將主要客戶端代碼寫在下面:
    <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>  回復  更多評論
      
    # re: Ajax應用問題求助匯總&《Ajax開發精要》反饋 2006-08-16 14:45 | sunson
    為什么在ajax中引用Servlet時老是出現404錯誤?  回復  更多評論
      
    # re: Ajax應用問題求助匯總&《Ajax開發精要》反饋 2006-08-16 14:45 | sunson
    為什么在ajax中引用Servlet時老是出現404錯誤?  回復  更多評論
      
    # re: Ajax應用問題求助匯總&《Ajax開發精要》反饋 2006-08-16 14:45 | sunson
    為什么在ajax中引用Servlet時老是出現404錯誤?  回復  更多評論
      
    # re: Ajax應用問題求助匯總&《Ajax開發精要》反饋 2006-09-03 06:07 | 邱俊
    您好,我用ajax+xml+asp 做blog是遇到這樣的問題
    asp返回一個xml文件,在客戶端用js解析,
    返回的xml文件無法解析,又沒有報錯,xml是用的responseXML得到的,用responseText測試知道xml文件已經返回到客戶端,
    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,應該是1才對,
    不知道是什么原因,望請賜教!!
      回復  更多評論
      
    # re: Ajax應用問題求助匯總&《Ajax開發精要》反饋 2006-09-03 06:13 | 邱俊
    接上文,當不采用asp返回的xml文件,直接讀已經存在的而且內容一樣xml文件時,又全部正確。@冷月宮主
      回復  更多評論
      
    # re: Ajax應用問題求助匯總&《Ajax開發精要》反饋 2007-01-25 17:52 | xu may
    用ajax,返回readyState為1,測試了一下,當readyState為1,2,3,4時,分別彈出警告,報告readyState的狀態,是什么原因導致不直接到4?  回復  更多評論
      
    # re: Ajax應用問題求助匯總&《Ajax開發精要》反饋 2008-02-29 17:33 | 我愛百合
    我以循環方式請求XMLHttpRequest(AJAX)
    現在遇到一個問題
    第一次請求的數據還沒有返回,我第二次請求就發出了(第二次請求和上一次請求的結果有關)

    大家說說這種情況該怎么處理??   回復  更多評論
      
    主站蜘蛛池模板: 24小时日本电影免费看| 亚洲精品无码av天堂| 羞羞漫画小舞被黄漫免费| 久久亚洲国产成人精品无码区| 99视频精品全部免费观看| 亚洲日韩国产欧美一区二区三区 | 免费精品国产自产拍观看| 国产精品黄页免费高清在线观看| 久久丫精品国产亚洲av| 国产亚洲精品免费| 精品亚洲永久免费精品 | 黄色毛片免费观看| 亚洲精品中文字幕乱码| 亚洲精品国产精品国自产观看| 免费人妻无码不卡中文字幕系| 老子影院午夜伦不卡亚洲| 久久久亚洲欧洲日产国码是AV | 亚洲AV一宅男色影视| 麻豆国产精品入口免费观看| 99久久国产精品免费一区二区| 亚洲精品伦理熟女国产一区二区| 亚洲精品少妇30p| 国产精品免费看久久久无码| 18禁无遮挡无码国产免费网站| 一级毛片a女人刺激视频免费| 亚洲人成激情在线播放| 亚洲av最新在线网址| 国产hs免费高清在线观看| 国产成人免费在线| a毛片免费在线观看| 野花视频在线官网免费1| 亚洲国产美女精品久久久久| 久久久青草青青亚洲国产免观| 国产国产人免费人成免费视频| 亚洲成年人免费网站| 三年片免费观看大全国语| 免费VA在线观看无码| 亚洲色最新高清av网站| 亚洲国产人成在线观看| 久久精品国产亚洲AV无码偷窥| 亚洲热妇无码AV在线播放|