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();
    }

  • 相关阅读:
    一致性哈希算法
    Discourse 的标签(Tag)只能是小写的原因
    JIRA 链接 bitbucket 提示错误 Invalid OAuth credentials
    JIRA 如何连接到云平台的 bitbucket
    Apache Druid 能够支持即席查询
    如何在 Discourse 中配置使用 GitHub 登录和创建用户
    Apache Druid 是什么
    Xshell 如何导入 PuTTYgen 生成的 key
    windows下配置Nginx支持php
    laravel连接数据库提示mysql_connect() :Connection refused...
  • 原文地址:https://www.cnblogs.com/love828/p/3295372.html
Copyright © 2011-2022 走看看