首页 > 其他分享 >js 原生方法请求接口

js 原生方法请求接口

时间:2023-09-05 13:55:38浏览次数:34  
标签:原生 www 调用 请求 接口 js xhr send open

XNLHttpRequest (xhr)介绍:

XMLHttpRequest(简称xhr)是浏览器提供的JavaScript对象,通过它,可以 请求服务器上的数据资源。

在jQuery中封装的AJAX函数,就是基于xhr,然后封装出jq中的ajax,然后就可以调用出get、post、ajax()三个方法

在原生中实际上真正用到的,是XMLHttpRequest这个对象

// get 请求

// 1.创建XHR对象
let xhr = new XMLHttpRequest()

// 2.调用 xhr的open()函数(open中传递两个参数,参数一是GET/POST请求方式,参数二是请求的URL地址),创建一个Ajax的请求
 xhr.open('GET', 'http://url地址',true) // true 异步 false 同步
 // 2-1.不带参数的URL地址
 // xhr.open('GET', 'http://www.liulongbin.top:3006/api/getbooks')
 // 2-2. 带一个参数的URL地址
 // xhr.open('GET', 'http://www.liulongbin.top:3006/api/getbooks?id=1')
 // 2.3 带二个参数的URL地址
 // xhr.open('GET', 'http://www.liulongbin.top:3006/api/getbooks?id=1&bookname=西游记')

// 3. 调用xhr的send函数,发起请求
xhr.send()

// 4. 监听 onreadystatechange 事件
xhr.onreadystatechange = function () {
         if (xhr.readyState === 4 && xhr.status === 200) {  //固定写法
             //数据获取成功,获取服务器响应的数据 
             console.log(xhr.responseText)
         }
}


// post  请求
<script>
        //1、创建xhr的对象
        let xhr = new XMLHttpRequest()
        //2、调用open函数('请求类型','url')
        xhr.open('POST', 'http://www.liulongbin.top:3006/api/addbook')
        //3、设置 Content-Type属性(固定写法)
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
        //4、调用send函数
        xhr.send('bookname=落日听风&author=我我我&publisher=个人出版社')
        //5、监听事件
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4 && xhr.status === 200) {
                console.log(xhr.responseText)
            }
        }
</script>

XHR对象中的 readyState 属性,用来表示 当前Ajax请求所处的状态,每个Ajax请求必然处于以下状态的一个:

值    状态              描述
0    UNSENT           xhr对象已被创建,但未调用open方法
1    OPENED           open()方法已经被调用
2    HEADERS_RECEIVED     send()方法已被调用,响应头也已经被接收
3    LOADING          数据接收中,此时 response 属性中已经包含部分数据
4    DONE            Ajax请求完成,这意味着数据传输已经彻底 完成 或 失败

 

标签:原生,www,调用,请求,接口,js,xhr,send,open
From: https://www.cnblogs.com/qianduan-lucky/p/17679386.html

相关文章

  • node.Js
    创建Node.js应用步骤一、使用require指令来加载和引入模块语法格式如下:constmodule=require('module-name');其中,module-name可以是一个文件路径(相对或绝对路径),也可以是一个模块名称,如果是一个模块名称,Node.js会自动从node_modules目录中查找该模块。require指令会返回......
  • python的dict和json数据的区别
    python的dict和json数据有什么区别?-知乎(zhihu.com)python字典与json的区别_python字典与json的区别_阿君聊风控的博客-CSDN博客expectedpropertynameor'}'injsonatposition1遇到如上报错几次,因为没弄清dict和json的区别1、dict是数据结构,json是数据格式,一般用于......
  • vs code 中 python 项目 settings.json 是做什么用的
    在VisualStudioCode中,项目的settings.json文件是用于配置项目设置的文件。其中,settings.json文件中保存了项目特定的设置,可以覆盖全局默认设置或用户设置。对于Python项目来说,settings.json文件可以用于配置以下内容:Python解释器路径:通过"python.pythonPath"属性......
  • 五笔字根查询接口
    输入法,五笔打字,生活服务,字根查询一、接口介绍可对五笔字根口诀及五笔编码查询,希望能为您学习五笔输入法提供帮助。二、功能体验三、产品特点四、API文档4.1五笔字根查询查询4.1.1接入点说明查询五笔字根。4.1.2接口地址http[s]://route.showapi.com/1861-1?showapi_......
  • js处理树形结构数据过滤
    最近项目经常遇到后台接口返回整个树形结构,而前端展示只需要展示部分类型的数据,需要过滤一下,所以整理了一个过滤方法。非层级结构时过滤非常简单,只需要一层代码就够了exportfunctionfilterTree(tree){returntree.filter(item=>item.type===0)}而要做到子节点也过滤......
  • JS 追加元素的几种办法
    JS追加元素的几种办法append(),在父级最后追加一个子元素appendTo(),将子元素追加到父级的最后prepend(),在父级最前面追加一个子元素prependTo(),将子元素追加到父级的最前面after(),在当前元素之后追加(是同级关系)before(),在当前元素之前追加(是同级关系)insertAfter(),将元素追......
  • API接口的对接流程和注意事项
    随着互联网技术的发展和应用的普及,API接口已经成为不同系统、不同应用之间进行交互和数据交换的重要方式。API接口使得不同的系统能够互相调用对方的功能,提高了系统的灵活性和扩展性。但是,在进行API接口对接的过程中,需要注意一些流程和事项,以确保对接的顺利进行和系统的稳定运行。......
  • 使用JSON.parseObject深拷贝二-复杂型拷贝
    问:如果json拷贝类型类似Page<T>这种复杂型的呢答:使用JSON的publicstatic<T>TparseObject(Stringtext,TypeReference<T>type,Feature...features)方法;代码如下:Page<EtcPassBillDataResponseVo>voPage=JSON.parseObject(JSON.toJSONString(dtoPage),new......
  • 写程序接口常遇到的20个坑
    跨域问题:在接口调用时,如果出现跨域问题需要在服务器端配置CORS(跨域资源共享)。参数校验不完善:需要对接口传入的参数进行校验,确保参数的合法性和完整性。接口安全问题:需要对接口进行身份验证和权限控制,避免未经授权的请求对系统造成损害。接口性能问题:在设计接口时需要考虑接口......
  • 逆向通达信Level-2 续四 (调试level2数据接口)
       ......