无法使ASPJAX正常工作

时间:2013-09-10 02:16:26

标签: html ajax asp-classic

我想制作一个关于如何结合ASP和AJAX的演示。我找到了来自http://www.aspjax.com的代码段并在我的项目中实现了它。但是,应该显示的文本无法正确输出。

这是代码。基本上与原版中的相同: 在index.asp

    <script language="javascript" type="text/javascript">
    /** XHConn - Simple XMLHTTP Interface - bfults@gmail.com - 2005-04-08        **
     ** Code licensed under Creative Commons Attribution-ShareAlike License      **
     ** http://creativecommons.org/licenses/by-sa/2.0/                           **/
    function XHConn()
    {
      var xmlhttp, bComplete = false;
      try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
      catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
      catch (e) { try { xmlhttp = new XMLHttpRequest(); }
      catch (e) { xmlhttp = false; }}}
      if (!xmlhttp) return null;
      this.connect = function(sURL, sMethod, sVars, fnDone)
      {
        if (!xmlhttp) return false;
        bComplete = false;
        sMethod = sMethod.toUpperCase();
        try {
          if (sMethod == "GET")
          {
            xmlhttp.open(sMethod, sURL+"?"+sVars, true);
            sVars = "";
          }
          else
          {
            xmlhttp.open(sMethod, sURL, true);
            xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
            xmlhttp.setRequestHeader("Content-Type",
              "application/x-www-form-urlencoded");
          }
          xmlhttp.onreadystatechange = function(){
            if (xmlhttp.readyState == 4 && !bComplete)
            {
              bComplete = true;
              fnDone(xmlhttp);
            }};
          xmlhttp.send(sVars);
        }
        catch(z) { return false; }
        return true;
      };
      return this;
    }

    // doAJAXCall : Generic AJAX Handler, used with XHConn
    // Author : Bryce Christensen (www.esonica.com)
    // PageURL : the server side page we are calling
    // ReqType : either POST or GET, typically POST
    // PostStr : parameter passed in a query string format 'param1=foo&param2=bar'
    // FunctionName : the JS function that will handle the response

    var doAJAXCall = function (PageURL, ReqType, PostStr, FunctionName) {

        // create the new object for doing the XMLHTTP Request
        var myConn = new XHConn();

        // check if the browser supports it
        if (myConn) {

            // XMLHTTPRequest is supported by the browser, continue with the request
            myConn.connect('' + PageURL + '', '' + ReqType + '', '' + PostStr + '', FunctionName);    
        } 
        else {
            // Not support by this browser, alert the user
            alert("XMLHTTP not available. Try a newer/better browser, this application will not work!");   
        }
    }

    // launched from button click 
    var getMessage = function () {

        // build up the post string when passing variables to the server side page
        var PostStr = "";

        // use the generic function to make the request
        doAJAXCall('ajaxtest.asp', 'POST', '', showMessageResponse);
    }

    // The function for handling the response from the server
    var showMessageResponse = function (oXML) { 

        // get the response text, into a variable
        var response = oXML.responseText;

        // update the Div to show the result from the server
        document.getElementById("responseDiv").innerHTML = response;
    };

</script>


<body>
    <button onclick="javascript:getMessage();">Get Message From Server</button>
    <div id="responseDiv">Original Text</div>
</body>

因此,代码告诉它将div中的Original Text替换为ajaxtest.asp

中的ajaxtest.asp

<%@ Language=VBScript %> Response.Write "The Server time is " & Now()

Get Message From Server

问题是,当我单击按钮ajaxtest.asp时,Response.Write "The Server time is " & Now()中的内容将呈现为纯文本,但不会呈现在ASP中。如何解决这个问题?是因为使用的扩展名是错误的吗?

编辑:通过纯文本我的意思与{{1}}

完全相同

1 个答案:

答案 0 :(得分:2)

您可能希望ASP页面的内容为:

<%@ Language=VBScript %>
The Server time is <%=Now()%>