zoukankan      html  css  js  c++  java
  • XMLHttpRequest ajax 随笔

    原生ajax 请求:

    function loadXMLDoc() {
        var xhr;
        var myJson = "";
        var html = "";
        if (window.XMLHttpRequest) {
            xhr = new XMLHttpRequest();
        } else {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4 && xhr.status == 200) {
                myJson = xhr.responseText;
                // var my = eval('(' + myJson + ')');
                var my = JSON.parse(myJson);
                for (var i = 0; i < my.myData.sites.length; i++) {
                    html += "<p>" + my.myData.sites[i].name + my.myData.sites[i].url + "</p>";
                }
                document.getElementById('myDiv').innerHTML = html;
            }
        }
        xhr.open("GET", 'js/myData.json', true);
        xhr.send();
    }

    //jQuery插件支持的转换方式

    $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象

    浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:

    JSON.parse(jsonstr); //可以将json字符串转换成json对象
    JSON.stringify(jsonobj); //可以将json对象转换成json对符串

    Javascript支持的转换方式

    eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
    注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。

    jquery ajax 请求:

    $(document).ready(function() {
        var myBtn = $("#myBtn");

        myBtn.on('click', function(data) {
            $.ajax({
                url: 'js/myData.json',
                type: 'GET',
                dataType: 'json',
                data: {},
                beforeSend: function() {
                    $("#loading").show();
                },
                success: function(data) {
                    var json = eval(data.myData);
                    var html = "";
                    $.each(json, function(index, val) {
                        console.log(index);
                        for (var i = 0; i < val.length; i++) {
                            html += "<p>" + val[i].name + val[i].url + "</p>";
                        }
                    });

                    $('.myContent').html(html);
                },
                complete: function() {
                    $("#loading").hide();
                },
                error: function(json) {
                    alert("加载失败");
                }
            });
        });
    });


    // myData.json

    {
        "myData": {
            "sites": [{
                "name": "菜鸟教程",
                "url": "www.runoob.com"
            }, {
                "name": "google",
                "url": "www.google.com"
            }, {
                "name": "微博",
                "url": "www.weibo.com"
            }]
        }
    }

     http://blog.csdn.net/zhoucheng05_13/article/details/53609952

  • 相关阅读:
    阮一峰的网络日志
    解决Windows路径太长的目录以及文件名超长删除的问题
    LVM扩容根分区
    Centos7 搭建prometheus+Grafana监控
    python3 读取txt文件数据,绘制趋势图,matplotlib模块
    linux python3安装whl包时报错解决:is not a supported wheel on this platform
    堆排序
    nginx: [emerg] "upstream" directive is not allowed here in .../.../.../*.conf
    Github私有仓库使用设置
    AWK处理重复Hosts
  • 原文地址:https://www.cnblogs.com/Alan2016/p/6600105.html
Copyright © 2011-2022 走看看