allocation size overflow

var cityID="1";
    var areaHtml="";
    var storeHtml="";
    //区域异步
    function GetareaHtml(){
        areaHtml="";
        storeHtml="";
        $.ajax({
            url: "<{:U('Online/GetDistrictList')}>",
            type: 'post',
            dataType: 'json',
            data: {"CityId": cityID},
            success: function (data) { //返回json {"msg":"u6210u529f","status":0,"data":[{"ID":16,"Name":"u5f90u6c47u533a"},{"ID":13,"Name":"u957fu5b81u533a"},{"ID":19,"Name":"u5b9du5c71u533a"}]}
                if (data.status == "0") {
                    var temps=data['data'].length;
                    for(i=0;i<data.data.length;i++){//data.data.length 火狐执行到这里会卡死 换成temps就正常了
                        if(i=0) {
                            areaHtml+="<div class='menu-area active s"+i+"' name='s"+i+"'>"+data.data.Name+"</div>"; //执行到这里会报错 allocation size overflow
                        }else{
//                            areaHtml+="<div class='menu-area s"+i+"' name='s"+i+"'>"+data.data.Name+"</div>";
                        }
//                        storeHtml+="<div class='stext' id='s"+i+"'>"+data.data.Name+"</div>";
//                        storeHtml+=GetstoreHtml();
                    }
                }
            }
        });
        $(".area-store-left").html(areaHtml);
        $(".area-store-right").html(storeHtml);
    }

备注:

    为什么data.data会卡死,在PHPstorm下,可以看到第一个data被当做ajax的请求字符串了。

    解决:使用data['data']['Name']这样来取参数

原文地址:https://www.cnblogs.com/itslives-com/p/allocation.html