博客
关于我
夜光带你走进 Ajax(三)
阅读量:281 次
发布时间:2019-03-01

本文共 1536 字,大约阅读时间需要 5 分钟。

夜光序言:

 

只要没答应那就不算失言了

 

正文:2 AJAX第二例(发送POST请求)

2.1 发送POST请求注意事项

 

POST请求必须设置ContentType请求头的值为application/x-www.form-encoded。表单的enctype默认值就是为application/x-www.form-encoded

因为默认值就是这个,所以大家可能会忽略这个值

 

当设置了<form>的enctype=” application/x-www.form-encoded”时,等同与设置了Cotnent-Type请求头。

但在使用AJAX发送请求时,就没有默认值了,这需要我们自己来设置请求头:

xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

 

当没有设置Content-Type请求头为application/x-www-form-urlencoded时,Web容器会忽略请求体的内容。

 

所以,在使用AJAX发送POST请求时,需要设置这一请求头,然后使用send()方法来设置请求体内容。

xmlHttp.send("b=B");

 

这时Servlet就可以获取到这个参数

 

AServlet

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

System.out.println(request.getParameter("b"));

System.out.println("Genius:Hello AJAX~~");

response.getWriter().print("Hello AJAX");

}

 

ajax2.jsp

<script type="text/javascript">

function createXMLHttpRequest() {

try {

return new XMLHttpRequest();//大多数浏览器

} catch (e) {

try {

return new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

return new ActiveXObject("Microsoft.XMLHTTP");

}

}

}

 

function send() {

var xmlHttp = createXMLHttpRequest();

xmlHttp.onreadystatechange = function() {

if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {

var div = document.getElementById("div1");

div.innerHTML = xmlHttp.responseText;

}

};

xmlHttp.open("POST", "/ajaxdemo1/AServlet?a=A", true);

xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

xmlHttp.send("b=B");

}

</script>

<h1>AJAX2</h1>

<button onclick="send()">夜光:测试</button>

<div id="div1"></div>

转载地址:http://htbo.baihongyu.com/

你可能感兴趣的文章
MySQL架构介绍
查看>>
MySQL架构优化
查看>>
MySQL查看数据库相关信息
查看>>
MySQL查看表结构和表中数据
查看>>
MySQL查询优化:LIMIT 1避免全表扫描
查看>>
MySQL查询优化之索引
查看>>
mysql查询储存过程,函数,触发过程
查看>>
mysql查询总成绩的前3名学生信息
查看>>
MySQL查询报错ERROR:No query specified
查看>>
mysql查询数据库储存数据的占用容量大小
查看>>
MySQL查询数据库所有表名及其注释
查看>>
MySQL查询数据表中数据记录(包括多表查询)
查看>>
mysql查询语句能否让一个字段不显示出来_天天写order by,你知道Mysql底层执行原理吗?
查看>>
MySQL死锁套路:一次诡异的批量插入死锁问题分析
查看>>
Mysql死锁问题Deadlock found when trying to get lock;try restarting transaction
查看>>
mysql每个数据库的最大连接数_MySQL数据库最大连接数
查看>>
Mysql流程控制结构,if函数、case结构、if结构、循环结构
查看>>
mysql添加用户
查看>>
MySQL添加用户、删除用户与授权
查看>>
mysql添加用户及权限
查看>>