ajax post请求输出undefined [英] ajax post request outputting undefined

查看:795
本文介绍了ajax post请求输出undefined的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个跨域的ajax POST调用但是当我在下面运行ajax函数时,它将输出显示为'undefined'而不是数据库中的数据。



I am trying to create a cross domain ajax POST call but when I run the ajax function below, it displays output as 'undefined' instead of the data from the database.

<script type="text/javascript">

    $(document).ready(function () {
        $.support.cors = true;
        $.ajax({
            type: "POST",
            crossDomain: true,
            contentType: "application/json; charset=utf-8",
            url: "home.aspx/BindDatatable",
            data: "{}",
            dataType: "json",
            success: function (data) {
                for (var i = 0; i < data.d.length; i++) {
                    $("#tbDetails").append("<tr><td>" + data.d[i].Name + "</td><td>" + data.d[i].Ln+ "</td><td>" + data.d[i].Events + "</td></tr>");
                }
            },
            error: function (result) {
                alert("Error");
            }
        });
    });

</script>





更新 服务器端方法:



Updated Server side method:

[WebMethod]
         public static string BindDatatable()
        {
            DataTable dt = new DataTable();
            List<UserDetails> details = new List<UserDetails>();

            using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["######"].ConnectionString))
            {
                using (SqlCommand cmd = new SqlCommand("############", con))
                {
                    con.Open();
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    da.Fill(dt);
                    foreach (DataRow dtrow in dt.Rows)
                    {
                        UserDetails user = new UserDetails();
                        user.Name = dtrow["###"].ToString();
                        user.Ln = dtrow["###"].ToString();
                        user.Events = dtrow["###"].ToString();
                        details.Add(user);
                    }
                }
            }
              JavaScriptSerializer serializer = new JavaScriptSerializer();
             return serializer.Serialize(details);
        }





任何帮助,关于如何使上述功能正常工作。我是否需要在服务器端进一步定义跨域标头,如果是这样,任何进一步的示例都将非常有用。



谢谢



any help, as to how I can make the above function work. Do I need further define the cross domain headers on my server side, if so, any further examples would be very beneficial.

Thank you

推荐答案

document )。ready( function (){
(document).ready(function () {


.support.cors = true ;
.support.cors = true;


.ajax({
type: POST
crossDomain: true
contentType: application / json; charset = utf-8
url: home.aspx / BindDatatable
data: { }
dataType: json
成功: function (data){
for var i = 0 ;我< data.d.length; i ++){
.ajax({ type: "POST", crossDomain: true, contentType: "application/json; charset=utf-8", url: "home.aspx/BindDatatable", data: "{}", dataType: "json", success: function (data) { for (var i = 0; i < data.d.length; i++) {


这篇关于ajax post请求输出undefined的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆