【问题标题】:Ajax not performing update when i deploy my web app to the server当我将我的 Web 应用程序部署到服务器时,Ajax 没有执行更新
【发布时间】:2019-02-25 14:13:44
【问题描述】:

我在.asmx web 服务中有一个 web 方法,我通过 jQuery ajax 调用这个方法来更新数据库记录;它在调试期间在我的本地机器上完美运行,问题是当我将它发布到服务器时,它不再工作。令人惊讶的是,不同页面中的其他更新运行良好,请告诉我哪里出错了。

下面是我的代码

jQuery ajax 函数

 function Updateaction() {
        $('#updateinit').click(function () {

            $('#iniativemodal').modal('show');
            debugger
          var Id=  $('#ikipitxt').val();
          var name=  $('#namtxt').val();
          var initd = $('#initdate').val();
           var des= $('#descrtxt').val();
           var budget= $('#budgettxt').val();
           var dur= $('#durationtxt').val();
           var inter= $('#intervalstarttxt').val();
           var ends =$('#intervalendtxt').val();
           var pers= $('#persontxt').val();
            var kpi=$('#ikpitxt').val();

            $.ajax({

                url:"/MyService.asmx/editActionplan?Id=" + $('#ikipitxt').val() + "&name=" + $('#namtxt').val() + "&initdate=" + $('#initdate').val() + "&Description=" + $('#descrtxt').val() + "&budget=" + $('#budgettxt').val() + "&duration=" + $('#durationtxt').val() + "&intervalstart=" + $('#intervalstarttxt').val() + "  &intervalend=" + $('#intervalendtxt').val() + "&responseperson=" + $('#persontxt').val() + "&kpi=" + $('#ikipitxt').val() + "",

                data: '{Id: ' + Id + ', name: "' + name + '",initdate: "' + initd + '",Description:"' + des + '", budget: "' + budget + '",duration: "' + dur + '",intervalstart: "' + inter + '",intervalend: "' + ends + '",responseperson: "' + pers + '",kpi: "' + kpi + '"}',

                type: "POST",
                contentType: "application/json;charset=utf-8",
                dataType: "json",
                success: function (result) {

                    $('#iniativemodal').modal('hide');

                    $('#ikipitxt').val("");
                    $('#namtxt').val("");
                    $('#initdate').val("");
                    $('#descrtxt').val("");
                    $('#budgettxt').val("");
                    $('#durationtxt').val("");
                    $('#intervalstarttxt').val("");
                    $('#intervalendtxt').val("");
                    $('#persontxt').val("");
                    $('#ikpitxt').val("");
                    displayAction();

                },

                error: function (errormessage) {

                    alert(errormessage.responseText);

                }

            });
        });


    }

网络服务中的网络方法

 [WebMethod]
    public void editActionplan(int Id, string name,string initdate, string Description, string budget, string duration,string intervalstart,string intervalend,string responseperson,int kpi)
    {

        string constring = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
        using (SqlConnection conn = new SqlConnection(constring))
        {
            //this what you looking for
            using (SqlCommand cmd = new SqlCommand(" UPDATE Iniative SET name=@name,initdate=@initdate,Description=@Description,budget=@budget,duration=@duration,intervalstart=@intervalstart,intervalend=@intervalend,responseperson=@responseperson,kpi=@kpi  WHERE Id=@Id", conn))
            {



                try
                {
                    conn.Open();


                    cmd.Parameters.AddWithValue("@Id", Id);
                    cmd.Parameters.AddWithValue("@name", name);
                    cmd.Parameters.AddWithValue("@initdate", initdate);
                    cmd.Parameters.AddWithValue("@Description", Description);
                    cmd.Parameters.AddWithValue("@budget", budget);
                    cmd.Parameters.AddWithValue("@duration", duration);
                    cmd.Parameters.AddWithValue("@intervalstart", intervalstart);
                    cmd.Parameters.AddWithValue("@intervalend", intervalend);
                    cmd.Parameters.AddWithValue("@responseperson", responseperson);
                    cmd.Parameters.AddWithValue("@kpi", kpi);

                    cmd.ExecuteNonQuery();

                }
                catch (Exception)
                {

                }
                finally
                {
                    conn.Close();
                }

            }
        }
    }

【问题讨论】:

  • 请提供更多信息,而不仅仅是“它不起作用”。调试的第一次尝试应该是检查控制台是否有错误,并查看 AJAX 请求的响应是什么。希望这能给你一些诊断的东西
  • 这是你出错的地方:catch (Exception) { } - 你忽略命令中的任何错误。也许你没有写权限/也许表定义是错误的 - 这就是它会在那个异常中告诉你的。
  • 如果它在您的本地运行,您的本地数据库和服务器数据库之间可能存在差异。检查 db 列及其类型,检查您的 Web 服务是否部署在服务器上。尝试写一些日志,
  • @freedomn-m,我已经在 ajax 的成功中放置了一个警报,并通过它执行,请注意,我有一个函数可以更新同一个数据库中的另一个表,它的工作只是在服务器上很好,没有发生的是从 webmethod 执行正确的事情
  • @umer 数据库是完全一样的,而且我还有其他方法来更新实际上正在更新,也在同一个表中,插入做得很好

标签: jquery asp.net ajax asp.net-ajax asmx


【解决方案1】:

在您的 global.asax.cs 文件中添加以下代码

protected void Application_BeginRequest(object sender, EventArgs e)
    {
        CultureInfo newCulture = (CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
        newCulture.DateTimeFormat.LongTimePattern= "HH:mm:ss"; //your time format

        newCulture.DateTimeFormat.ShortDatePattern = "dd-MM-yyyy"; // your date format 
        newCulture.DateTimeFormat.DateSeparator = "-";
         Thread.CurrentThread.CurrentCulture = newCulture;




    }

【讨论】:

  • cmd.Parameters.AddWithValue("@intervalstart", Convert.ToDateTime(item.intervalstart));
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
  • 2015-05-08
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多