JavaScript jQuery 中 ajax 的简单使用

JS 对象转字符串

var str = JSON.stringify(obj)

JS 字符串转对象

var obj = JSON.parse(str)

后端使用 Flask 写一个可以返回数据的路由:

from flask import Flask, render_template
app = Flask(__name__)

@app.route("/")
def index():
    return render_template("ajax_demo.html")

@app.route("/getUserInfo/<username>")
def get_user_info(username):
    user_info = {}
    if username == "zhangsan":
        user_info = {"username": "zhangsan", "age": 3, "mail": "1@1.com"}
    return {"data": user_info, "status": 200}

if __name__ == "__main__":
    app.run(debug=True)

前端 html 页面 ajax_demo.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Ajax Test</title>
    <!-- 从公网引入 jquery -->
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
<input type="text" id="user">
<button type="submit" onclick="getTable1()">提交</button>
<p id="userinfo"></p>
</body>
</html>


<script>
    function getTable1(){
        if ($("#user").val() == ""){
            $("#userinfo").text("内容不能为空!")
        }else{
            // $.ajax 接收一个参数,包含当前请求的所有配置
            $.ajax({
                url: './getUserInfo/' + $("#user").val(), // 必填,请求的地址
                type: 'GET', // 选填,请求方式默认是 GET(忽略大小写)
                data: {}, // 选填,发送 POST 请求时携带的参数
                dataType: 'json', // 选填,期望返回值的数据类型,默认是 string
                async: true, // 选填,是否异步,默认是 true
                success: function(data){
                    // 写入前端页面的必须是字符串,这里回调函数返回的是一个 Object,需要转成字符串
                    $("#userinfo").text(JSON.stringify(data))
                    console.log(data["data"])
                }, // 选填,成功的回调函数
                error: function(){$("#userinfo").text("获取信息失败")}, // 选填,失败的回调函数,例如请求的地址不通
                cache: true, // 选填,是否缓存,默认是 true
                context: "", // 选填,回调函数中的 this 指向,默认是 ajax 对象
                status: {}, // 选填,根据对应的状态码进行函数执行
                timeout: 1000, // 选填,超时事件
            })
        }

    }
</script>

运行效果:

在这里插入图片描述
如果直接点击提交,JS 会在 p 标签写入文字

  if ($("#user").val() == ""){
            $("#userinfo").text("内容不能为空!")}

在这里插入图片描述
写入任意字符,调用后端接口,返回数据
在这里插入图片描述
写入符合需求的用户信息,返回数据
在这里插入图片描述
success 的回调函数做下修改,返回一个表格看看:

                success: function(data){
                    //$("#userinfo").text(JSON.stringify(data))
                    //console.log(data["data"])
                    for (var key in data.data){
                        $("#userinfo").append('<tr><th>'+key+'</th><td>'+data.data[key]+'</td></tr>')
                    }

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

某呆啊

赏个糖吃吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值