zoukankan      html  css  js  c++  java
  • ajax xmlhttp下open方法POST、GET参数的区别

    1. get是从服务器上获取数据(会暴露客户端ip),post是向服务器传送数据。
    2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
    3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
    4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
    5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。

    建议:

    1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
    2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;


    1 问题描述:
    xmlhttp:open方法,请求页面的时候,更新页面数据后,第2次拿到的结果还是上次的信息
    2 解决办法:
    改用POST方式
    3 说明:
    xmlhttp:open方法
    创建一个新的http请求,并指定此请求的方法、URL以及验证信息
    语法

    oXMLHttpRequest.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword);
    参数

    bstrMethod
    http方法,例如:POST、GET、PUT及PROPFIND。大小写不敏感。
    /*****
    POST:用"POST"方式发送数据,可以大到4MB
    GET:用"GET"方式发送数据,只能256KB
    如果请求带有参数的化实用POST方式,POST方式将参数放置在页面的隐藏控件内
    没有参数使用GET方式
    对于请求的页面在中途可能发生更改的,也最好用POST方式
    用GET方式可能会拿不到最新的信息
    *****/
    bstrUrl
    请求的URL地址,可以为绝对地址也可以为相对地址。
    varAsync[可选]
    布尔型,指定此请求是否为异步方式,默认为true。如果为真,当状态改变时会调用onreadystatechange属性指定的回调函数。
    bstrUser[可选]
    如果服务器需要验证,此处指定用户名,如果未指定,当服务器需要验证时,会弹出验证窗口。
    bstrPassword[可选]
    验证信息中的密码部分,如果用户名为空,则此值将被忽略。

    Example

    下面的例子演示从服务器请求book.xml,并显示其中的book字段。

     代码如下 复制代码
    var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
    xmlhttp.open("GET","http://localhost/books.xml", false); 没有参数且不会发生改变的用GET,否则用POST
    xmlhttp.send();
    var book = xmlhttp.responseXML.selectSingleNode("//book[@id=''''bk101'''']");
    alert(book.xml);
     

    备注

    调用此方法后,可以调用send方法向服务器发送数据。

    调用页面

     代码如下 复制代码
    <script language="javascript" type="text/javascript">
    function UpdateData()
    {
    var ServerUrl = window.location.href;
    var str = ServerUrl.split("/");
    var ServerUrl = "http://"+str[2];
    var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    var serverURL=ServerUrl+"/GetTemp.aspx";
    xmlhttp.Open("POST",serverURL, false);
    xmlhttp.Send("adst");
    xmlhttp = null;
    }
    </script>
     

    处理页面,得到传入的数据

     代码如下 复制代码
    private string GetInput()
    {
    System.IO.Stream s = Request.InputStream;
    int count = 0;
    byte[] buffer = new byte[1024];
    StringBuilder builder = new StringBuilder();
    while ((count = s.Read(buffer, 0, 1024)) > 0)
    {
    builder.Append(Encoding.UTF8.GetString(buffer, 0, count));
    }

    return builder.ToString();
    }

  • 相关阅读:
    Linux下通过二进制方式安装mysql5.7版本和系统优化
    SQL中的real、float、decimal、numeric数据类型区别
    SQL中的事务ACID
    一台服务器搭建部署两个或多个Redis实例
    SQLServer数据库镜像高性能模式下维护
    SQLServer配置镜像,无法将 ALTER DATABASE 命令发送到远程服务器实例,数据库镜像配置未更改。请确保该服务器已连接,然后重试。
    阿里云数据库MongoDB版清理oplog日志和compact命令详解
    Linux下shell脚本实现mongodb定时自动备份
    List分组
    Sql Server日期查询-SQL查询今天、昨天、7天内、30天
  • 原文地址:https://www.cnblogs.com/love828/p/3295372.html
Copyright © 2011-2022 走看看