0

我在 jQuery 中进行 ajax 调用时遇到问题。做了一百万次之后,我知道我在这里遗漏了一些非常愚蠢的东西。这是我进行 ajax 调用的 javascript 代码:

   function editEmployee(id) {
       $('#<%= imgNewEmployeeWait.ClientID %>').hide();
       $('#divAddNewEmployeeDialog input[type=text]').val('');
       $('#divAddNewEmployeeDialog select option:first-child').attr("selected", "selected");
       $('#divAddNewEmployeeDialog').dialog('open');
       $('#createEditEmployeeId').text(id);
       var inputEmp = {};
       inputEmp.id = id;
       var jsonInputEmp = JSON.stringify(inputEmp);
       debugger;
       alert('Before Ajax Call!');
       $.ajax({
           type: "POST",
           url: "Configuration.aspx/GetEmployee",
           data: jsonInputEmp,
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           success: function (msg) {
               alert('success');
           },
           error: function (msg) {
               alert('failure');
           }
       });
   }

这是我试图调用的 CS 代码:

    [WebMethod]
    public static string GetEmployee(int id)
    {
        var employee = new Employee(id);

        return Newtonsoft.Json.JsonConvert.SerializeObject(employee, Newtonsoft.Json.Formatting.Indented);
    }

当我尝试运行它时,我确实收到了警报,上面写着Before Ajax Call!. 但是,我从来没有收到过这样的提示success或提示failure。我确实进入了我的 CS 代码并在该GetEmployee方法上放置了一个断点。断点确实命中,所以我知道 jQuery 成功调用了该方法。我逐步完成了该方法,它执行得很好,没有错误。我只能假设当 jQuery ajax 调用从调用返回时发生错误。

另外,我查看了我的事件日志只是为了确保没有发生 ASPX 错误。日志中没有错误。我还看了看控制台。没有脚本错误。有人知道我在这里缺少什么吗?

`

4

2 回答 2

0

尝试这个

function editEmployee(id) {
   $('#<%= imgNewEmployeeWait.ClientID %>').hide();
   $('#divAddNewEmployeeDialog input[type=text]').val('');
   $('#divAddNewEmployeeDialog select option:first-child').attr("selected", "selected");
   $('#divAddNewEmployeeDialog').dialog('open');
   $('#createEditEmployeeId').text(id);
   //var inputEmp = {};
  // inputEmp.id = id;
  // var jsonInputEmp = JSON.stringify(inputEmp);
   //debugger;
   alert('Before Ajax Call!');
   $.ajax({
       type: "POST",
       url: "Configuration.aspx/GetEmployee",
       data: {id: id},
      // contentType: "application/json; charset=utf-8",
      // dataType: "json",
       success: function (msg) {
           alert('success');
       },
       error: function (msg) {
           alert('failure');
       }
   });   }
于 2013-06-26T05:09:43.593 回答
0

如果 ajax 调用没有进入成功函数,那么问题出在 CS 代码中的数据格式上。返回数据不能是正确的 JSON 格式。我猜你应该得到“500”错误。

尝试以正确的 JSON 格式返回它。

于 2013-06-27T10:15:59.820 回答