0

我想做一个关于如何结合 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>

因此,代码告诉它将Original Textdiv 中的 替换为 inajaxtest.asp

ajaxtest.asp

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

问题是当我单击按钮时Get Message From Server,其中的内容ajaxtest.asp呈现为纯文本,而不是在 ASP 中。如何解决这个问题?是不是因为使用的扩展名不对?

编辑:纯文本我的意思是完全一样Response.Write "The Server time is " & Now()

4

1 回答 1

2

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

<%@ Language=VBScript %>
The Server time is <%=Now()%>
于 2013-09-10T03:51:54.340 回答