zoukankan      html  css  js  c++  java
  • ajax的尝试(2)

    经过上一次的AJAX尝试,我想把AJAX实际应用于密码的修改界面,它要先输入工号,我就希望它跳出对应的姓名。
    但问题随之而来,上一次,我是使用单独建立一个ASP文件,但这一次我不希望文件太多,少一些文件,这样看得更清爽一些。所以想把查询姓名的代码也放在更改密码的界面中。这里我遇到了两个问题:如何改为POST方式,因为POST方式可以让我不必写那么多参数;如何让ASPX只传回指定内容,而不是把<html><head>...全部传回来。
    第一个问题,网络上有现成代码,原来代码如下:
    function TxtS61BH_keydown()
    {
      var xhttp = new ActiveXObject("Microsoft.XMLHTTP");
      xhttp.open("GET", "password.aspx?S61BH="+document.all["TxtS61BH"].value, false);
      xhttp.send();
      eval(xhttp.responseText);
    }
    现只要改为如下即可:
    function TxtS61BH_keydown()
    {
      var para="S61BH="+document.all["TxtS61BH"].value;
      var xhttp = new ActiveXObject("Microsoft.XMLHTTP");
      xhttp.open("POST", "password.aspx", false);
      xhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
      xhttp.send(para);
      eval(xhttp.responseText);
    }
    主要就是,增加一个变量para,然后send时,括号内加上para。现在看来,POST方式也是要写参数,没有实现我之前想象的内容。
    我测试时发现即使xhttp.setRequestHeader不写,也可以实现POST的方式。


    第二个问题,网络上说得比较少,大部分都是说“新建一个空白的页面……”这种方法,但有发现使用Response.End即可。而我试一下没有效果。折腾了半天,发现我在试上一部时,把xhttp.setRequestHeader注释了,如果有写上这句话,Response.End就OK了。气!
    所以,要让ASPX回传一些内容,可以使用Response.End来截止“<HTML><HEAD>...”这些内容的回传。

    另外,我再试GET的方式,也是需要xhttp.setRequestHeader的,否则也是传回“<HTML><HEAD>...”。

     

  • 相关阅读:
    马云演讲稿
    马云演讲稿
    使用命令行+代理更新Android SDK
    GitHub 中国区前100 名技术专家
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/yzx99/p/1203226.html
Copyright © 2011-2022 走看看