2013-06-26 58 views
0

我在jQuery中调用ajax调用时遇到问题。完成了这一百万次后,我知道我在这里错过了一些非常愚蠢的事情。这里是我做的Ajax调用javascript代码:jQuery ajax调用似乎没有做任何事情

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错误。日志中没有错误。我也看了一下控制台。没有脚本错误。任何人有什么想法我在这里失踪?

`

+0

尝试使用“console.log(msg);”代替警报成功/失败并查看浏览器控制台日志(在chrome上控制shift J,但所有最近的浏览器都有日志)以查看是否记录了msg。如果它显示在日志中,您可以点击msg并展开它,看看它说什么。 – Paul

+0

使用Fiddler来查看请求是否实际发生以及返回的内容。如果使用Chrome设置“引发时”进行异常处理。还要考虑将'$ .ajax'封装到try/catch中,以便知道它是否直接失败/查看失败(现在不是你的情况)。 –

+0

不是ajax属性'dataType',而不是'contentType'? –

回答

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'); 
     } 
    }); } 
0

如果Ajax调用多年平均值而来的成功函数内部则问题是在CS代码的DATAFORMAT。返回数据不得以适当的JSON格式。你应该会得到“500”错误,我猜。

尝试以适当的JSON格式返回它。

相关问题