热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

使用ajax发起post请求时设置HTTP头信息

今天写了一个ajax用post请求方式提交到后台接收不到数据,经过多方摸索在网上找到点资料与大家分享一下一定要设置这个头文件否则后台得不到前台ajax请求发送的数据。XMLHTTP.setRequestHeader(Content-Type,application/x-www-form-urlencodedcharse

   今天写了一个ajax 用post请求方式提交  到后台接收不到数据,经过多方摸索 在网上找到点资料与大家分享一下

一定要设置这个头文件否则后台得不到前台ajax请求发送的数据。

  XMLHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded charset=utf-8");

通常在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,很明显英文的意思是 连接:关闭

只是客户端在提交数据时告诉服务器让谁先关闭连接而已。


推荐阅读
  • 本文探讨了在Windows Server 2008环境下配置Tomcat使用80端口时遇到的问题,包括端口被占用、多项目访问失败等,并提供详细的解决方法和配置建议。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文探讨了在不使用服务器控件的情况下,如何通过多种方法获取并修改页面中的HTML元素值。除了常见的AJAX方式,还介绍了其他可行的技术方案。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文详细介绍了Java Web应用程序中的过滤器(Filter)功能,包括其作用、实现方式及配置方法。过滤器可以在请求到达目标资源之前对其进行预处理,并在响应返回给客户端之前进行后处理。 ... [详细]
author-avatar
mobiledu2502881513
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有