XMLHttpRequest(xhr)地区查询(从服务器获取数据)

根据省份和城市名字, 查询对应的地区列表

document.querySelector('.sel-btn').addEventListener('click', () => {
          //获取用户输入的东西
          const pname = document.querySelector('.province').value
          const cname = document.querySelector('.city').value

          //组织查询参数字符串(用API)
          //1.创建URLSearchParams对象
          const qObj = {
              pname,
              cname
          }

          //2.生成指定格式查询参数,字符串。用api把查询参数对象-》查询参数字符串
          
          const paramsObj = new URLSearchParams(qObj)
          const queryString = paramsObj.toString()

          //使用XHR对象,查询地区列表
          const xhr = new XMLHttpRequest()
          xhr.open('GET', `http://hmajax.itheima.net/api/area?${queryString}`)
            //传参
          xhr.addEventListener('loadend', () => {
          
              //这段代码会解析一个来自XMLHttpRequest(xhr)的JSON响应,然后遍历数据以创建一个HTML格式的项目列表。数据数组中的每个项目都会被转换为一个带有类名"list-group-item"的<li>元素。最后,使用join()方法将HTML字符串数组连接成一个单一的字符串。

              //生成的HTML字符串可以用来填充DOM中的列表,显示来自JSON响应的地区名称。
              //拿到服务器返回的数据
              console.log(xhr.response)
              //将字符串转为JSON
              const data = JSON.parse(xhr.response)

              const htmlStr = data.list.map(areaName => {
                  //在这段代码中,areaName代表从JSON响应中提取出来的每个地区名称。在map()方法中,areaName是一个参数,代表数据数组中的每个元素,然后被用来创建对应的HTML字符串。最终,这些地区名称会被显示在一个列表中。
                  return `
 <li class="list-group-item">${areaName}</li>
`
              }).join('')
              //把join形成的大的字符串拼接在后面
              document.querySelector('.list-group').innerHTML = htmlStr
          })
          //调用send方法,发起请求
          xhr.send()

      })

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
是的,XMLHttpRequestXHR)对象是用于在后台与服务器交换数据的 JavaScript API。 XMLHttpRequest 允许客户端 JavaScript服务器进行异步通信,从而动态更新网页内容,而不必刷新整个页面。XHR 可以发送 HTTP 请求,接收和处理服务器响应。它可以通过 GET 或 POST 方法发送请求,支持同步和异步模式。 以下是一个简单的例子,使用 XHR 对象从服务器获取数据: ``` const xhr = new XMLHttpRequest(); xhr.open('GET', 'http://example.com/data'); xhr.onload = function() { if (xhr.status === 200) { console.log(xhr.responseText); // 输出从服务器返回的数据 } else { console.log('请求失败:' + xhr.status); } }; xhr.send(); ``` 在上面的例子中,我们创建了一个 XMLHttpRequest 对象,然后使用 open() 方法指定要发送的 HTTP 请求(使用 GET 方法请求 http://example.com/data),然后定义了一个 onload 事件处理函数,当服务器返回数据时,该函数会被调用。最后,我们使用 send() 方法发送请求。 在实际开发中,我们通常会使用 jQuery 或其他 JavaScript 库来简化 XHR 的使用。例如,使用 jQuery 发送 XHR 请求的代码如下: ``` $.ajax({ url: 'http://example.com/data', method: 'GET', success: function(data) { console.log(data); // 输出从服务器返回的数据 }, error: function() { console.log('请求失败'); } }); ``` 这个代码使用 jQuery 的 ajax() 方法发送 XHR 请求,指定了要请求的 URL、HTTP 方法和成功和失败回调函数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值