通过 Ajax 调取后台接口将返回的 json 数据绑定在页面上

Posted 成为自己最想成为的那种人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过 Ajax 调取后台接口将返回的 json 数据绑定在页面上相关的知识,希望对你有一定的参考价值。

第一步:

  编写基础的 html 框架内容,并引入 jquery:

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>测试Ajax</title>
        <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
        <script>
            
        </script>
    </head>
    <body>
        
    </body>
</html>

第二步:

  在 “<body></body>” 中间插入要点击的按钮和用来显示数据的<p>标签,并编写对应的 function:

  “ajax的使用往往配合事件操作进行调用”

    <body>
        <button id="btn">点击获取数据</button>
        <p id="ganmao"></p>
    </body>

  function:

        <script>
        $(function(){
            $("#btn").on("click", function(){
                //调用 ajax
            });
        })
        </script>

第三步:

  使用 ajax 调用后台接口并处理数据:

                $.ajax({
                    url: \'http://localhost:53087/test/ajax\',    //后端程序的url地址
                    type: \'get\',
                    dataType: \'json\',
                    data:{    //发送给服务器的数据,如果是get请求,也可以写在url地址的?后面
                        "city":\'郑州\',
                    }
                })
                .done(function(resp){        //请求成功以后的操作(resp是后端返回的json数据,值为:{"city":"郑州"})
                    console.log(resp);
                    var data = eval(\'(\' + resp + \')\');        //data为json数据转换成的对象,值为:{city: "郑州"}
                    console.log(data);
                    var city = data[\'city\'];
                    console.log(city);
                    
                    $(\'#ganmao\').html(city)
                })
                .fail(function(error){        //请求失败以后的操作
                    console.log(error);
                });

合在一起的代码:

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>测试Ajax</title>
        <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
        <script>
        $(function(){
            $("#btn").on("click", function(){
                $.ajax({
                    //后端程序的url地址
                    url: \'http://localhost:53087/test/ajax\',
                    type: \'get\',
                    dataType: \'json\',
                    data:{    //发送给服务器的数据,如果是get请求,也可以写在url地址的?后面
                        "city":\'郑州\',
                    }
                })
                .done(function(resp){        //请求成功以后的操作
                    console.log(resp);
                    var data = eval(\'(\' + resp + \')\');
                    console.log(data);
                    var city = data[\'city\'];
                    console.log(city);
                    
                    $(\'#ganmao\').html(city)
                })
                .fail(function(error){        //请求失败以后的操作
                    console.log(error);
                });
            });
        })
        </script>
    </head>
    <body>
        <button id="btn">点击获取数据</button>
        <p id="ganmao"></p>
    </body>
</html>
View Code

运行效果:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

PS:

  过程中遇到了报错:“Failed to load http://localhost:53087/test/ajax: No \'Access-Control-Allow-Origin’ header is present on the requested resource” 无响应解决方法。百度找到好像是跨域问题,解决方法是 在config里面加上:

    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET"/>
                <add name="Access-Control-Allow-Headers" value="x-requested-with"/>
                <add name="Access-Control-Allow-Origin" value="*" />//表示允许所有来源进行跨域访问
            </customHeaders>
        </httpProtocol>
    </system.webServer>

补充学习:

  前端处理 json 数据通常有3步:

    1、得到 json 数据

    2、解析 json 数据      (可使用 js 中的 eval 函数解析 json 数据,但要为 json 数据加上括号)

    3、在页面上显示数据

    

 

以上是关于通过 Ajax 调取后台接口将返回的 json 数据绑定在页面上的主要内容,如果未能解决你的问题,请参考以下文章

ajax中回调的几个坑

前端ajax如何接受后台的model

springboot中jsp用ajax传json数据传不到后台,结果显示全为null

springmvc,通过ajax方式提交页面数据,后台返回json数据中文信息乱码

POSTMAN测试调取https接口时返回为空问题

Struts2.5 利用Ajax将json数据传值到JSP