《前端》jQuery-ajax例子

2023-11-08

我的jQuery-ajax的笔记:https://blog.csdn.net/bellediao/article/details/104239715

从其他博主那里截取的例子,并附有疑问解答。

例1:将接口中的result字段绘制成表格。

<!-- 将http://hebutgo.com:8080/maps/getMapsList接口中的result字段绘制成表格。 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ajax例子-接口中的result字段绘制成表格</title>
    <style type="text/css">
        .main {
            width: 500px;
            margin: 0 auto;
            text-align: center;
        }

        #table {
            display: inline-block;
            vertical-align: top;
            border-collapse: collapse;
        }

        tr td {
            width: 200px;
            border: 1px solid gray;
        }
    </style>
</head>
<body>
    <!-- 引入jquery -->
    <script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript">
        function printtable() {
            $.ajax({
                url: 'http://hebutgo.com:8080/maps/getMapsList',
                type: 'get',
                datatype: 'json',
                success: function (res) {
                    console.log(res);  //在console中查看数据
                    $.each(res.result, function (index, obj) {
                        $("#table").append(
                            "<tr><td>" + obj['申请人省份'] + "</td>" +
                            "<td>" + obj['counts'] + "</td><tr>");
                    });
                }
            })
        }
    </script>
    <!-- html -->
    <div class="main">
        <table id="table" >
            <tr>
                <th>申请人省份</th>
                <th>数量</th>
            </tr>
        </table>
        <input type="button" value="PRINT" onclick="printtable()" />
    </div>
</body>
</html>

解释:

接口里数据是这样的:

{"result":[{"申请人省份":"0","counts":1553},{"申请人省份":"上海市","counts":637},{"申请人省份":"云南省","counts":81},{"申请人省份":"内蒙古自治区","counts":52},{"申请人省份":"北京市","counts":1186},{"申请人省份":"吉林省","counts":90},{"申请人省份":"四川省","counts":443},{"申请人省份":"天津市","counts":249},{"申请人省份":"宁夏回族自治区","counts":15},{"申请人省份":"安徽省","counts":1633},{"申请人省份":"山东省","counts":780},{"申请人省份":"山西省","counts":60},{"申请人省份":"广东省","counts":1575},{"申请人省份":"广西壮族自治区","counts":367},{"申请人省份":"新疆维吾尔自治区","counts":48},{"申请人省份":"江苏省","counts":1889},{"申请人省份":"江西省","counts":90},{"申请人省份":"河北省","counts":164},{"申请人省份":"河南省","counts":261},{"申请人省份":"浙江省","counts":905},{"申请人省份":"海南省","counts":20},{"申请人省份":"湖北省","counts":434},{"申请人省份":"湖南省","counts":211},{"申请人省份":"甘肃省","counts":71},{"申请人省份":"福建省","counts":277},{"申请人省份":"西藏自治区","counts":5},{"申请人省份":"贵州省","counts":108},{"申请人省份":"辽宁省","counts":199},{"申请人省份":"重庆市","counts":193},{"申请人省份":"陕西省","counts":270},{"申请人省份":"青海省","counts":15},{"申请人省份":"香港","counts":1},{"申请人省份":"黑龙江省","counts":215}],"reason":"","status":"success"}

为了方便查看,部分数据转成json数据如下:

{
	"result": [{
		"申请人省份": "0",
		"counts": 1553
	}, {
		"申请人省份": "上海市",
		"counts": 637
	}, {
		"申请人省份": "云南省",
		"counts": 81
	}...],
	"reason": "",
	"status": "success"
}

创建步骤:

1、先引入jquery。

2、html部分。是一个表格(只有一个表头)和一个打印按钮。当点击按钮,触发onclick事件,调用在js里写的带有ajax函数。

3、js部分。创建printtable()函数,里面是$.ajax。

ajax里有 url、type、datatype、success属性。在success属性里面,写了console.log(数据)和使用each循环添加到table后面。

例2:ajax获取后端经纬度例子。

<!-- 实现在页面上输入一个地址,点击获取经纬度,弹出该地址的经纬度。
url=“https://restapi.amap.com/v3/geocode/geo” key:“7486e10d3ca83a934438176cf941df0c”
(此处的key值是从此地址请求数据所需的,为data数据中的一项,直接使用即可) -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ajax获取经纬度例子</title>
    <style type="text/css">
        .button {
            width: 100px;
            height: 29px;
            font-size: 16px;
            color: white;
            background-color: black;
            padding: 0;
            vertical-align: top;
            border: 0;
        }
        .textbox {
            height: 25px;
            padding: 0;
            vertical-align: top;
        }
        span {
            font-size: 16px;
            height: 29px;
            line-height: 29px;
        }
    </style>
</head>
<body>
    <!-- 引入jquery -->
    <script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript">
        function showAddress() {
            var str = document.getElementById("text").value;
            $.ajax
                ({
                    url: "https://restapi.amap.com/v3/geocode/geo",
                    // url里面内容是:{"status":"0","info":"INVALID_USER_KEY","infocode":"10001"}
                    dataType: "json",
                    type: "get",
                    data: {
                        address: str,
                        key: "7486e10d3ca83a934438176cf941df0c",
                    },
                    success: function (res) {
                        alert(res.geocodes[0].formatted_address + "经纬度:" + res.geocodes[0].location);
                        console.log(res);  //在console中查看数据
                    },
                    error: function () {
                        alert('failed!');
                    },
                });
        }
    </script>
    <!-- html -->
    <div>
        <form name="form">
            <span>输入地址:</span><input id="text" class="textbox" type="text" />
            <input class="button" type="button" value="获取经纬度" onclick="showAddress()" />
        </form>
    </div>
</body>

</html>

疑问及解答:

此实例中,通过ajax请求一个可以获取地理位置的api接口,请求方式为get,请求参数为address和key。

1、在$.ajax()方法中,包含
      a. 请求参数列表data{ }
      b. 成功回调函数success:function(res){ }
a中的data表示的是请求接口所用的数据,b中res表示的是请求成功后接口返回的数据,即两者的内容没有直接关系,更不要说是相同的了。
2、如何查看数据是什么?

一般来说,可通过alert以弹窗形式展示想看的数据,或通过console.log()打印到控制台查看,后者在前端开发中常用。
3、对于提到的address和key请求参数是请求url中数据所需要的,至于为什么是这两个参数?这个key的值是哪里得到的?

这是设计接口的人决定的,不是前端人员决定的。

4、“data.geocodes[0].formatted_address+"经纬度:"+data.geocodes[0].location”这个语句中geocodes[0]是什么?我怎么知道.formatted_address就是地名?location就是经纬度呢?我看了url中的数据是{"status":"0","info":"INVALID_USER_KEY","infocode":"10001"}。这样看不出data返回的数据是什么样的。

建议学习一下get请求的实现方式,

如果想通过查看url得到数据,以查询“上海”为例,可以通过:https://restapi.amap.com/v3/geocode/geo?address=上海&key=7486e10d3ca83a934438176cf941df0c 查看,而非https://restapi.amap.com/v3/geocode/geo

--------

jQuery的Ajax实例(附完整代码)_JavaScript_Yuan_mingyu的博客-CSDN博客  https://blog.csdn.net/Yuan_mingyu/article/details/86748591#comments

《前端》jQuery-each遍历用法_JavaScript_bellediao的博客-CSDN博客  https://blog.csdn.net/bellediao/article/details/104571627

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《前端》jQuery-ajax例子 的相关文章

随机推荐

  • 冒泡排序实现(c++)

    目录 冒泡排序简介 冒泡排序原理 动图演示 代码实现 冒泡排序简介 冒泡排序 最优时间复杂度O N 平均时间复杂度O N 2 最差空间复杂度O N 平均时间复杂度O 1 是一种代码简单的排序也是几乎最慢的算法 稳定 冒泡排序原理 比较相邻的
  • Notepad++ 删除空白行的方法

    方法一 插件处理 先下载安装插件 TextFX 下载后重新启动下 然后在菜单栏找到 TextFX gt TextFX Edit gt Delete blank lines 即可 方法二 正则处理 选择替换 把查找模式设置为正则表达式 在查找
  • windows server 2008 r2安装SQL SERVER 2008 R2 不能打开1433端口设置方法

    服务器 WINDOWS SERVER 2008 R2 SQL SQL SERVER 2008 R2 背景 同一个公司同一个局域网 网络可以ping通 但是不能连接服务器数据库 提示错误1326 前期设置 经过前期设置都不行 telnet l
  • 提升布局灵活性:掌握Vue中vue-splitpane分割面板的实用技巧

    项目中遇到内容分割化并且可以让用户自行调整面板大小的需求 即可使用此组件解决 首先看效果 使用 npm install vue splitpane S 引入组件库 import splitPane from vue splitpane 全局
  • Altium Designer中批量修改原理图中的器件属性

    网上关于批量修改也有很多的介绍 按照网上的尝试在PCB的修改中可以正常操作 但是在原理图中 却只能修改一个 究其原因 原来是差了一步 正确的步骤是 1 先选择需要修改的器件的其中一个 2 右键find similar objects 然后在
  • 史上最全的Unity面试题(含答案)

    一 什么是渲染管道 是指在显示器上为了显示出图像而经过的一系列必要操作 渲染管道中的很多步骤 都要将几何物体从一个坐标系中变换到另一个坐标系中去 主要步骤有 本地坐标 gt 视图坐标 gt 背面裁剪 gt 光照 gt 裁剪 gt 投影 gt
  • scrapy爬取动态网页_基于scrapy的动态网页采集方案总结

    基于scrapy的动态网页采集一直是个难点 而且如果想达到工程级别的抓取 需要有个高效率的解决方案 我列出了几个曾经尝试过的方案和它们的特点 基于PyV8等脚本解析引擎 这类方案的原理是利用开源浏览器项目中的脚本解释引擎 实现相关脚本片段的
  • unity 切换camera 渲染层

    camera有个属性cullingMask 改变cullingMask就可以改变camera渲染层 在做GUI时特别有用 camera cullingMask 1 lt lt 8 渲染除了层8的所有层 camera cullingMask
  • Redis生存时间TTL

    文章目录 为什么要设置key生存时间 设置key的生存时间 访问key的生存时间 清除生存时间 毫秒级时间 为什么要设置key生存时间 设置key的生存时间 可以用于以下使用场景 在登录网站后 将用户session存储在内存 设置一个过期时
  • Second season fifteenth episode,How are Ross and Rachel doing

    Scene Chandler and Joey s apartment Joey and Chandler enter with Chandler covering his eyes and Joey leading him JOEY Al
  • y2第一章 初始mybatis的上机3_MyBatis3.2.x从入门到精通之第一章

    第一章 一 引言 mybatis是一个持久层框架 是apache下的顶级项目 mybatis托管到goolecode下 再后来托管到github下 百度百科有解释 二 概述 mybatis让程序将主要精力放在sql上 通过mybatis提供
  • 改进遗传算法的参数反演--实例复现(详细注释)

    目录 主函数 计算适应度大小 选择操作 论文中的竞争选择法 锦标赛选择法 交叉操作 论文中的离散交叉法 变异操作 论文中的非均匀变异法 生成测试数据 某次运行结果 主函数 清除变量 导入数据 clear clc load Data Crea
  • hihoCoder_1014

    include
  • 以 Animated Drawings APP 为例,用 TorchServe 进行模型调优

    内容导读 上节介绍了 TorchServe 模型部署调优的 5 个步骤 将模型部署到生产环境中 本节以 Animated Drawings APP 为例 实际演示 TorchServe 的模型优化效果 本文首发自微信公众号 PyTorch
  • C++中报错: E0289:没有与参数列表匹配的构造函数“Employee::Employee”实例的解决方案

    仅为学习笔记 大佬请跳过 解决 将构造函数代码中的char pName改为const char pName即可 背景 构造函数等成员函数全部都写了 仍出现这个报错 解决 将构造函数代码中的char pName改为const char pNa
  • 【机器学习期末总结】5-感知机

    分离超平面 随机梯度下降 对偶形式 感知机简介 感知机1957年由Rosenblatt提出 是神经网络与支持向量机的基础 感知机是二类分类的线性分类模型 输入是实例的特征向量 输出是实例的类型 1 1 感知机模型是一个分离超平面 感知机预测
  • Linux crontab命令 定时任务 用法详解以及no crontab for root解决办法

    一 Linux系统安装crontab服务 1 确认crontab是否安装 crontab l 如果报 command not found 就说明该crontab服务没有安装 如果报 no crontab for root 就说明已经安装cr
  • python------线程池的应用

    在python中经常会使用异步 线程池 进程池 解决io操作 在爬虫中并不建议使用进程池 消耗过大 目标 会使用线程池 1 导入 import time def demo1 for i in range 3 print f 我饿了 i ti
  • MVCC与BufferPool缓存机制

    今天学习了MVCC与BufferPool缓存机制 这里记录一下学习笔记 有错误 还望指出 文章目录 MVCC多版本并发控制机制 undo日志版本链与read view机制 Innodb引擎SQL执行的BufferPool缓存 MVCC多版本
  • 《前端》jQuery-ajax例子

    我的jQuery ajax的笔记 https blog csdn net bellediao article details 104239715 从其他博主那里截取的例子 并附有疑问解答 例1 将接口中的result字段绘制成表格