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

ajax 呼び出しが成功関数内に入らない場合、問題は CS コードのデータ形式にあります。返されるデータは適切な JSON 形式であってはなりません。「500」エラーが発生するはずです。

適切な JSON 形式で返してみてください。

于 2013-06-27T10:15:59.820 に答える