异步调用无法正常工作ajax asmx webservice?

时间:2014-10-21 13:31:52

标签: jquery asp.net ajax web-services asp.net-ajax

我对asp.net webforms有一个奇怪的问题,我解决了它,但我不喜欢我解决它的方式,所以我正在寻找其他选择。

我在webservice(.asmx)中有一个方法,并且我使用jquery ajax($ .ajax)调用它,当我不使用断点时它可以正常工作,但如果我使用断点即使我没有停止调试方法,回调也会返回错误。

让我试着更好地解释一下:

场景1 - 我执行方法而不进行调试。 (async:true) 场景1结果=它工作正常。

场景2 - 我执行方法debbuging。 (async:true) 场景2结果=在我完成调试方法之前,它会回到JQUERY,错误状态只是“错误”。没有关于它的重要信息。

场景3 - 我在没有调试的情况下执行该方法。 (async:false) 场景3结果=它工作正常。

场景4 - 我在没有调试的情况下执行该方法。 (async:false) 场景4结果=它工作正常。

客户方:

$.ajax({
        type: "POST",
        url: "WBSJsonRequests.asmx/InsertInterConsulta",
        data: JSON.stringify(parameters),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (JsonResponseData) {

            if (JsonResponseData.d === "success") {
                alert("Se han agregado la esta especialidad correctamente!");
            }
            else {
                alert("Se ha producido un error en el servidor: " + JsonResponseData.d);
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {

            console.log(textStatus);

            alert(textStatus);
        }

    });

服务器端:

<WebMethod(Description:="Inserta Interconsulta")>
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)>
Public Function InsertInterConsulta(InterConsultaList As InterConsulta, IdCita As Integer) As String
    Dim Searializer As New JavaScriptSerializer()
    Try
        InterConsultaList.IdCita = IdCita
        Meds.InterConsulta.GuardarInterConsulta(InterConsultaList.IdEspecialidad, InterConsultaList.IdCita)
        Return "success"
    Catch ex As Exception
        Return ex.Message
    End Try
End Function

结束功能

1 个答案:

答案 0 :(得分:0)

我能够找到发生的事情,问题是如果你有asyn:true,而你正在通过一个事件发出一个ajax请求,你需要先做一个“e.preventDefault()”做请求,或者它会一遍又一遍地做。