XML HttpRequest
- JavaScript对象XMLHttpRequest是整个Ajax技术的核心,它提供了异步发送请求的能力
- 常用方法
方法名 | 说明 |
---|---|
open(method,URL,async) | 1.建立与服务器的连接 method:请求方式,URL:请求地址,async参数:是否使用异步请求,true or false |
send(content) | 发送请求content参数:请求参数,只有通过post请求才能通过send()发送参数 |
setRequestHeader(header,value) | 设置请求头信息 |
function ajaxDemo(){
//1.创建XMLHTTPRequest对象
var xhr = new XMLHTTPRequest();
xhr.open("get","logo",false)
xhr.send(null)
var data = xhr.responseText;
console.log(data)
}
- 常用事件
– onreadystatechange: 事件属性,指定回调函数,当readyState属性改变时触发执行。 - 常用属性
– readyState: 表示XMLHttpRequest对象的状态
就绪状态码 | 说明 |
---|---|
0 | XMLHttpRequest对象已经创建,还没有完成初始化 |
1 | XMLHTTPRequest对象开始发送请求 |
2 | XMLHttpRequest对象的请求发送完成 |
3 | XMLHTTPRequest对象开始读取相应,还没有结束 |
4 | XMLHTTPRequest对象读取相应结束 |
– status: 表示HTTP请求响应的状态
状态码 | 说明 |
---|---|
200 | 服务器响应正常 |
400 | 无法找到请求的资源 |
403 | 没有访问权限 |
404 | 访问的资源不存在 |
500 | 服务器内部错误 |
- responseText: 获取响应的文本内容
- responseXML :获取响应的XML文档对象Document
function sendAsync(){
var xhr = XMLHTTPRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState==4&&xhr.status==200){
var data = xhr.responseText;
console.log(data)
}
}
xhr.open("get","api",false)
xhr.send(null)
}
通过post方式发送请求
GET和POST区别
GET方式:
1.数据通过url发送,显示在地址栏中
2.传递的数据大小有限
3.字符集会被自动转换为ISO-8859-1,一般需要在服务器端进行解码
解决乱码:1)服务器解码 ;2)使用过滤器;3)直接修改Tomcat的配置文件server.xml
POST方式:
1.数据通过请求头发送,不显示在地址栏中,相对而言较安全
2.理论上数据大小没有限制
3.字符集可以在请求头中设置,服务器端会自动识别