jQuery $ .post后不触发Webmethod(500错误)

时间:2019-07-02 20:55:49

标签: javascript jquery vb.net

我有一个jquery帖子,每次尝试执行特定的web方法时都会返回500错误。我已经测试了我的通话记录和我试图调用的实际功能,并且都可以正常工作。我不确定在其他网络方法上未发生此错误时为什么会收到此错误。

我运行过的测试: 1)检查webmethod是否不正确: 我从后面的代码中调用了webmethod,它运行得很好。

2)检查我是否在.post中正确调用了web方法: 我将URL更改为调用其他函数,该函数起作用了。

3)断点: 我放置在所需功能内部的断点不会触发,但是当我使用相同的.post测试其他Web方法时,它们会触发。

Site.js上的内容是什么

    $('#result-table').on('click', '.delete-user-button', function () {

        //var temp = JSON.stringify($(this).data('userid'));

        var obj = {
            recordId: $(this).data('userid')
        };

        $.post({
            url: '/svc/webmethods.aspx/Delete_User_Group',
            data: JSON.stringify(obj),
            dataType: 'json',
            contentType: "application/json; charset=utf-8",
        })
    })

我的webmethod.aspx.vb是什么

    <WebMethod()>
    Public Shared Function Delete_User_Group(form As String) As BooleanResponse
        Try
            Dim response As New BooleanResponse()
            Dim formFieldList = Get_FormFieldsAsList(form)
            Dim RecordId As String = formFieldList.First.value

            Dim user As New UserMembership(SiteUtils.DefaultConnectionString)
            user.RecordId = RecordId
            user.Delete()
            If user.IsDeleted Then
                response.IsSuccess = True
            Else
                response.IsSuccess = False
                response.Message = "Failed to Delete User"
            End If

            Dim group As New UserMembership(SiteUtils.DefaultConnectionString)
            group.RecordId = RecordId
            group.Delete()
            If group.IsDeleted And response.IsSuccess = True Then
                response.IsSuccess = True
            Else
                response.IsSuccess = False
                response.Message += " Failed to Delete Group"
            End If
            Return response
        Catch ex As Exception
            HttpContext.Current.Response.StatusCode = 500
            HttpContext.Current.Response.StatusDescription = ex.Message
            Return Nothing
        End Try
    End Function

我希望可以启动Delete_User_Group网络方法,以允许我运行说明。

我收到此错误: 无法加载资源:服务器的状态为500(内部服务器错误)[/ svc / webmethods.aspx / Delete_User_Group]

编辑1: 我更新了代码以删除jquery处理程序中的double stringify。不幸的是,我仍然收到500错误。

编辑2:我进行了更多测试,并能够启动我的网络方法。我通过摆脱传递的参数来做到这一点。

$.post({
       url: '/svc/webmethods.aspx/Delete_User_Group',
       dataType: 'json',
       contentType: "application/json; charset=utf-8"
})

...

Public Shared Function Delete_User_Group() As BooleanResponse

我已经研究了一段时间,无法弄清楚如何正确地将参数传递给我的web方法。对于所有其他网络方法,我一直在做同样的事情,但对于为什么这种方法行不通,我感到很困惑。

答案::终于找到了错误,超级初学者,所以我有点不好意思。

错误是因为我正在使用的.post正在发送一个字段名称为“ recordID”的对象,而Web方法希望该参数以“ form”形式出现

Site.js:
        var obj = {
            recordId: $(this).data('userid')
        };

webmethod.aspx.vb:
Public Shared Function Delete_User_Group(form As String) As BooleanResponse

最后,我将JSON对象字段更改为:

Site.js:
        var obj = {
            form: $(this).data('userid')
        };

0 个答案:

没有答案