• 【转】XMLHTTP中setRequestHeader参数问题


    新加:设置编码方法 setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=gb2312") 语法 oXMLHttpRequest.setRequestHeader(bstrHeader, bstrValue); 参数 bstrHeader 字符串,头名称。 bstrValue 字符串,值。 还是不很明白 1、XMLObject.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded" CONTENT-TYPE是什么意思,application/x-www-form-urlencoded是什么意思? 2、下面几句setRequestHeader的含义? setRequestHeader("Content-type", "application/x-www-form-urlencoded"); setRequestHeader("Content-length", paramsSend.length); setRequestHeader("Connection", "close"); 解答: 通常在HTTP协议里,客户端像服务器取得某个网页的时候,必须发送一个HTTP协议的头文件, 告诉服务器客户端要下载什么信息以及相关的参数,如: GET /bb.asp?www=1234 HTTP/1.1 Accept: */* Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) Host: www.e4j.cn:89 Connection: Keep-Alive Cookie: %C3%F7%CC%EC=%B0%CB;ASPSESSIONIDASDBSDRR=BLEDBIBBCGKBJAKJCFEJKGII 而 XMLHTTP 就是通过HTTP协议取得网站上的文件数据的,所以也要发送HTTP头给服务器。 但是 XMLHTTP 默认的情况下有些参数可能没有说明在HTTP头里,这是当我们需要修改或添加这些参数时就用到了 setRequestHeader 方法。 就比如如果上面这段HTTP头文件内容是 XMLHTTP 提交默认的情况,当使用 setRequestHeader 方法后就这样,如: XMLObject.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded" setRequestHeader "Connection", "close" 这时HTTP头信息就应该是这样了: GET /bb.asp?www=1234 HTTP/1.1 Accept: */* Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) CONTENT-TYPE:application/x-www-form-urlencoded Host: www.e4j.cn:89 Connection: close Cookie: %C3%F7%CC%EC=%B0%CB;ASPSESSIONIDASDBSDRR=BLEDBIBBCGKBJAKJCFEJKGII setRequestHeader方法只是XMLHTTP为添加或修改HTTP头提供的一个接口方法而已, 至于里面的值则是HTTP协议的含义,当然也可以发自己的东西进去,即使IIS不能识别你的信息也不会报错 如: setRequestHeader "MyName", "Supermanking" 虽然IIS不会报错,但这个信息也可以有用,可以在ASP程序里读取HTTP头信息分析是否有 MyName: Supermanking 信息,可根据你的需求来做处理,还有,CONTENT-TYPE:application/x-www-form-urlencoded含义是表示客户端提交给服务器文本内容的编码方式是URL编码,即除了标准字符外,每字节以双字节16进制前加个“%”表示 当然还有其他编码方式,如:CONTENT-TYPE:multipart/form-data 至于:Content-length 就是表示提交的数据字节大小 http有几种提交方式,其中比较常用的就是 GET 和 POST 这个标志就放在HTTP头开头的地方,这样讲容易理解点 GET 方式是没有提交内容的,所以 Content-length 在 GET 模式下是无效的. GET 传参数的方式就是通过虚拟地址传送,如: GET /bb.asp?www=1234 HTTP/1.1 参数全部就只有 "www=1234" 这么多 如果用POST的话就有些不同,POST是将参数放到HTTP后面的,就以上面的HTTP作范例,用POST的方法传参数 POST /bb.asp HTTP/1.1 Accept: */* Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) CONTENT-TYPE:application/x-www-form-urlencoded Host: www.e4j.cn:89 Content-length: 8 Connection: close Cookie: %C3%F7%CC%EC=%B0%CB;ASPSESSIONIDASDBSDRR=BLEDBIBBCGKBJAKJCFEJKGII www=1234 这时,数据就需要说明字节大小了 至于 Connection: Close,很明显英文的意思是 连接:关闭 只是客户端在提交数据时告诉服务器让谁先关闭连接而已。
  • 相关阅读:
    写的一个split函数
    从头開始写项目Makefile(十):make内嵌函数及make命令显示
    MySQL 中文乱码解决
    查看DNS主机名解析的主机IP并向DNSserver进行DNS域名解析
    【iOS开发-90】CALayer图层:自己定义图层,图层的一些动画
    iconv 中文截断问题的解决方法
    linux有用技巧:使用ntfs-3g挂载ntfs设备
    SQL Sever——远程过程调用失败(0x800706be)
    USACO ariprog 暴力枚举+剪枝
    Shell编程(脚本)的经常使用命令和语句
  • 原文地址:https://www.cnblogs.com/yzhweb/p/Ajax.html
Copyright © 2020-2023  润新知