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 = ""
来自方法,因此没有名称冲突。
我创建了一个 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 = ""
来自方法,因此没有名称冲突。