Ajax 调用:无效的 Web 服务调用,缺少参数值:'itemTypes'

Ajax call: Invalid web service call, missing value for parameter: 'itemTypes'

我创建了一个 ajax 调用并尝试将一个对象作为参数发送到服务器,但我收到以下错误:

Invalid web service call, missing value for parameter: 'itemTypes'

我检查了 javascript 中的 itemTypes 变量,它包含预期值:

sessionStorage.itemTypeUid = "18"

sessionStorage.itemTypeName = "TABLE_NAME"

args = {CurId: 18, BaseTableName: "TABLE_NAME"}

javascript:

var itemTypes = {
            CurId: parseInt(sessionStorage.itemTypeUid),
            BaseTableName: sessionStorage.itemTypeName
        };

        aj("DeleteItem", itemTypes);

Ajax:

function aj(funcName, args) {
    retval = $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: 'ItemEdit.asmx/' + funcName,
        data: JSON.stringify(args),
        dataType: "json",
        error: function (a, b, c) {
            var errors = a + b + c
        }
    });
}

VB:

<WebMethod()>
    Public Sub DeleteItem(itemTypes As Object)
    
            Dim CurId = ""
            Dim BaseTableName = ""
    
            actions.DeleteItem(CurId, BaseTableName)
        End Sub

您可以像这样更新您的网络方法:

<WebMethod()>
Public Sub DeleteItem(CurId As Integer, BaseTableName As String)
   actions.DeleteItem(CurId, BaseTableName)
End Sub

请确保此处的参数名称与 ajax 调用中传递的值完全相同。即使名称相同但大小写不同,您也可能会出错。所以,请先仔细检查变量名。另外,删除

Dim CurId = "" 
Dim BaseTableName = "" 

来自方法,因此没有名称冲突。