Ajax вызов: неверный вызов веб-службы, пропущено значение для параметра: 'itemTypes' - PullRequest
1 голос
/ 15 апреля 2020

Я создал вызов ajax и пытаюсь отправить объект в качестве аргумента на сервер, но получаю следующую ошибку:

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

Я проверил переменная itemTypes в javascript и содержит ожидаемые значения:

sessionStorage.itemTypeUid = "18"

sessionStorage.itemTypeName = "GRIT_SALT_BINS"

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

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

1 Ответ

1 голос
/ 16 апреля 2020

Вы можете обновить свой веб-метод следующим образом:

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

Пожалуйста, убедитесь, что имя параметра здесь точно совпадает со значениями, переданными в вызове ajax. Даже если имя одинаковое, но регистр другой, вы можете получить ошибки. Поэтому, пожалуйста, сначала проверьте имена переменных. Кроме того, удалите

Dim CurId = "" 
Dim BaseTableName = "" 

из метода, чтобы не было конфликтов имен.

...