新人ajax不执行success

2017-05-06 12:23
我现在是想后台获取sqlserver数据,然后绑定到前台的echarts中,看了很多网上是例子,但都没法成功传值
 
$.ajax({  
                type: "post",  
                async: false, //同步执行  
                url: "Dt2Json.aspx?type=reportData",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (result) {  
                    //if (result) {  
                        //将返回的category和series对象赋值给options对象内的category和series  
                        //因为xAxis是一个数组 这里需要是xAxis[i]的形式  
                        option.xAxis[0].data = result.category;
                        option.series = result.series;

                        myChart.setOption(option);
                        //myChart.refresh();
                    //}  
                },  
               error: function (errorMsg) {  
                    alert(arguments[1]);

                }

            });  

后台
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        string type = Request["type"];
        if (!string.IsNullOrEmpty(type))
        {
            switch (type)
            {
                case "energyData":
                    getdatafromSQL();
                    break;
                case "reportData":
                    getdatafromSQL();
                    break;
            }
        }
    }
    private void getdatafromSQL()
    {
        List<string> categoryList = new List<string>();
        List<Series> seriesList = new List<Series>();
        DataTable dt = null;
        using (SqlConnection con = new SqlConnection("server=192.168.18.158;database=myDB;uid=zhao;pwd=123"))
        {
            string strSQL = @"SELECT 时间,T1 FROM TemAndPre";
            using (SqlDataAdapter adapter = new SqlDataAdapter(strSQL, con))
            {
                DataSet ds = new DataSet();
                adapter.Fill(ds);
                dt = ds.Tables[0];
            }
        }
        Series thisSeriesObj = new Series();
        thisSeriesObj.id = 0;
        thisSeriesObj.name = "趋势图";
        thisSeriesObj.type = "line";
        thisSeriesObj.data = new List<object>();
        thisSeriesObj.itemStyle = new itemStyle { normal = new normal { color = "#33CCFF" } };
        Series lastSeriesObj = new Series();
        foreach (DataRow dr in dt.Rows)
        {
            categoryList.Add(dr[0].ToString());
            thisSeriesObj.data.Add(dr[1]);
        }
        seriesList.Add(thisSeriesObj);
        var newObj = new
        {
            category = categoryList,
            series = seriesList,       
        };
        Response.Write(JsonConvert.SerializeObject(newObj, Formatting.None));
        Response.End();

    }
    class Series
    {
        /// <summary>  
        /// sereis序列组id  
        /// </summary>  
        public int id
        {
            get;
            set;
        }

        /// <summary>  
        /// series序列组名称  
        /// </summary>  
        public string name
        {
            get;
            set;
        }

        /// <summary>  
        /// series序列组呈现图表类型(line、column、bar等)  
        /// </summary>  
        public string type
        {
            get;
            set;
        }

        /// <summary>  
        /// series序列组的itemstyle  
        /// </summary>  
        public object itemStyle
        {
            get;
            set;
        }
        /// <summary>  
        /// series序列组的数据为数据类型数组  
        /// </summary>  
        public List<object> data
        {
            get;
            set;
        }
    }
    class normal
    {
        /// <summary>  
        /// color  
        /// </summary>  
        public string color
        {
            get;
            set;
        }
    }

    class itemStyle
    {
        /// <summary>  
        /// normal  
        /// </summary>  
        public object normal
        {
            get;
            set;
        }
    }
    public static  string DtToJson(DataTable table)
    {
        var JsonString = new StringBuilder();
        if (table.Rows.Count > 0)
        {
            JsonString.Append("[");
            for (int i = 0; i < table.Rows.Count; i++)
            {
                JsonString.Append("{");
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    if (j < table.Columns.Count - 1)
                    {
                        JsonString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\",");
                    }
                    else if (j == table.Columns.Count - 1)
                    {
                        JsonString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\"");
                    }
                }
                if (i == table.Rows.Count - 1)
                {
                    JsonString.Append("}");
                }
                else
                {
                    JsonString.Append("},");
                }
            }
            JsonString.Append("]");
        }
        return JsonString.ToString();
    }

}

这也是根据网上的一个例子改的,但是ajax都不执行success。
然后单独用response写出的数据为
新人ajax不执行success0
小弟刚刚接触这方面的内容,所以弄不明白,真心求助啊

回复讨论(解决方案)

劝你先学习下如何用浏览器自带的开发者工具调试js代码
ajax的url内容不正确吧
url: "Dt2Json.aspx?type=reportData",  这个是 Dt2Json.aspx 而你代码中的页面是Default.aspx
success中 将 result先转成Json对象。不然他只是个字符串 $.parseJSON(result)
然后通过q.属性,试试看
success: function (result) {
                var q = $.parseJSON(result)
                alert(q.a);
            }
3楼说的有道理。。。我居然没看见,你调用的页面和实际页面不同。
三楼说的有道理,你按他的试试吧
ajax的url内容不正确吧
对,就是这个问题,太感谢了
url: "Dt2Json.aspx?type=reportData",  这个是 Dt2Json.aspx 而你代码中的页面是Default.aspx
对,我忘了该类名称,太感谢啦
success中 将 result先转成Json对象。不然他只是个字符串 $.parseJSON(result)
然后通过q.属性,试试看
success: function (result) {
                var q = $.parseJSON(result)
                alert(q.a);
            }
嗯,你说的很对,不过我是用eval了,也很谢谢你