概述
目录
1 . 使用xhr(XMLHttpRequest的缩写)发起GET请求
2.使用xhr发起带参数的GET请求
2.1 查询字符串
2.2 GET请求携带参数的本质
3. URL编码与解码
3.1 URL编码
3.2 URL编码与解码
4. 使用xhr发起POST请求
1 . 使用xhr(XMLHttpRequest的缩写)发起GET请求
//1.创建XHR对象
var xhr = new XMLHttpRecuest ()
//2. 调用 open 函数,指定 请求方式 与 URL地址
xhr. open ('GET' ,‘http://www .liulongbin.top:3006/api/getbooks’)
//3. 调用send 函数,发起 Ajax 请求
xhr.send ()
// 4. 监听 onreadystatechange 事件
xhr.onreadystatechange = function(){
//4.1监听 xhr对象的请求状态 readystate ;
//
与服务器响应的状态 status
if (xhr.readyState === 4 && xhr.status === 200) {
//4.2打印服务器响应回来的数据
console.log (xhr.responseText)
}
}
2.使用xhr发起带参数的GET请求
使用 xhr对象发起带参数的 GET 请求时,只需在调用 xhr.open 期间,为 URL 地址指定参数即可:
//省略不必要的代码
xhr .open ('GET', ’http://www.liulongbin.top:3006/api/getbooks?id=1‘)
//省略不必要的代码
这种在URL地址后面拼接的参数,叫做查询字符串。
2.1 查询字符串
定义:查询字符串 (URL 参数)是指在 URL 的末尾加上用于向服务器发送信息的字符串 (变量)
格式:将英文的?放在URL 的末尾,然后再加上 参数 = 值,想加上多个参数的话,使用 & 符号进行分隔。以这个形式,可以将想要发送给服务器的数据添加到 URL中。
// 不带参数的 URL 地址
http://www.1iulongbin.top:3006/api/ getbooks
//带一个参数的 URL 地址
http://www.1iulongbin.top:3006/api/getbooks?id=1
//带两个参数的 URL 地址
http://www.1iulongbin.top:3006/api/getbooks?id=1&bookname=西游记
2.2 GET请求携带参数的本质
无论使用 $.ajax(),还是使用$.get(),又或者直接使用xhr 对象发起 GET 请求,当需要携带参数的时候,本质上,都是直接将参数以查询字符串的形式,追加到 URL 地址的后面,发送到服务器的。
$.get ‘url’,{name:’Zs‘,age: 20), function) {})
//等价于
$.get (‘url?name=zs&age=20’, function () {})
$.ajax ({ method:'GET’,url:’url’, data:{name:’zs’,age: 20},success: function(){} })
//等价于
$.ajax ({ method:’GET’,url:’url?name=zs&age=20’,success: function(){} })
3. URL编码与解码
3.1 URL编码
URL 地址中,只允许出现英文相关的字母、标点符号、数字,因此,在URL地址中不允许出现中文字符。
如果 URL 中需要包含中文这样的字符,则必须对中文字符进行编码(转义)。
URL编码的原则:使用安全的字符(没有特殊用途或者特殊意义的可打印字符) 去表示那些不安全的字符。
URI编码原则的通俗理解:使用英文字符去表示非英文字符。
http://www.1iulongbin.top:3006/api/getbook5?id=1 5bookname=西游记
//经过 URL 编码之后,URL地址变成了如下格式:
http://www.liulongbin.top:3006/api/getbooksid=1&bookname=SE88A5&BF&E6&B&&B&&E8&AE&B0
3.2 URL编码与解码
浏览器提供了 URL编码与解码的 API,分别是:
encodeURI(’黑马程序员’)
//输出字符串%E9%BB&91&E98A9%AC&E78A8%8B&E5&BA%8F&E5&91&98
decodeURI('%E9%BB8918E98A9%AC’)
//输出字符串 黑马
4. 使用xhr发起POST请求
//1.创建xhr 对象
var xhr = new XMLHttpRecuest (
//2.调用 open()
xhr.open ('POST', ‘http://www.1iulongbin.top:3006/api/addbook')
//3.设置 Content-Type 属性(固定写法)
xhr.setReguestHeader (’Content-Type‘,’apr1ication/x-www-form-urlencoded’)
//4. 调用 send(),同时将数据以查询字符串的形式,提交给服务器
xhr.send (‘bookname=水浒传&author=施耐庵&pub1isher=天津图书出版社’)
//5. 监听 onreadystatechange 事件
xhr.onreadystatechange = function(){
if (xhr.readyState === 4 && xhr. status === 200){
console.log (xhr.responseText)
}
}
最后
以上就是坦率月饼为你收集整理的前端学习21 - Ajax - XMLHttpRequest的基本使用的全部内容,希望文章能够帮你解决前端学习21 - Ajax - XMLHttpRequest的基本使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复