jquery - 无效的 Web 服务调用,缺少参数值,但我将其包含在调用中

标签 jquery asp.net ajax webmethod

我完全困惑了。我有一个 WebMethod,我想从 javascript 调用它。很简单,用 jQuery,我以前已经这样做过。但这一次,我收到一条错误消息,指出我没有提供 WebMethod 的参数。但在我看来,我是。

我的 aspx 代码隐藏中有这个:

<WebMethod(True)> _
<ScriptMethod(UseHttpGet:=True)> _
Public Shared Function GetTimes(ByVal input as String) As Object()
    Dim result As New List(Of Object)
    result.Add(New With {.Text = "5:30", .Value = "1"})
    result.Add(New With {.Text = "6:00", .Value = "2"})
    result.Add(New With {.Text = "6:30", .Value = "3"})
    result.Add(New With {.Text = "7:00", .Value = "4"})
    Return result.ToArray
End Function

这在我的 JavaScript 中:

$.ajax({
        url: 'ThePage.aspx/GetTimes',
        contentType: "application/json; charset=utf-8",
        data: '{"input":"test"}',
        dataType: 'json',
        succes: function (result) {
            alert('yep');
        },
        error: function (request, errorType, obj) {
            alert('nope');
        }
    });

但是我收到以下错误:

Invalid web service call, missing value for parameter: \u0027input\u0027.

包含的 StackTrace 是:

at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary'2 parameters) at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary'2 parameters) at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams) at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)

ExceptionType: System.InvalidOperationException

有人见过这个吗?

最佳答案

您似乎正在将文字对象作为字符串。数据应为 {input:"test"} 而不是 '{"input":"test"}'

所以正确的调用是

$.ajax({
        url: 'ThePage.aspx/GetTimes',
        contentType: "application/json; charset=utf-8",
        data: {input:"test"},
        dataType: 'json',
        succes: function (result) {
            alert('yep');
        },
        error: function (request, errorType, obj) {
            alert('nope');
        }
    });

关于jquery - 无效的 Web 服务调用,缺少参数值,但我将其包含在调用中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6505680/

相关文章:

javascript - 在 YUI 或 jQuery 之间进行选择会影响 .js 文件的整体设计吗?

javascript - JQuery 获取元素的值 : onfocus ="inputInlineHint(self);"

javascript - jquery 选择值属性并应用每个值

c# - 如何向我的 C# Web 应用程序添加文件上传按钮?

asp.net - 我可以创建一个不回发的 ASP.NET ImageButton 吗?

php - JSON 限制?

javascript - JQuery 将 HTML 重写为文本

c# - 如何从异常中获取 IIS 子状态代码?

javascript - 为什么我在这里看到 "origin is not allowed by Access-Control-Allow-Origin"错误?

.net - 上传失败一次,然后正常工作