【问题标题】:Ajax calling showing error "Invalid web service call"Ajax 调用显示错误“无效的 Web 服务调用”
【发布时间】:2016-09-09 11:23:08
【问题描述】:

我正在调用 Ajax,如下所示

$.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",

        url: 'employerbrowse.aspx/GetData',
        dataType: "json",

        data: '{  "jsondata":' + jsondata + ',"key":"' + getValue('id') + '"}',
        success: function (data) {
            callback(data);
        },
        error: function (error) {
            callback(error.responseText);

        }
    });

调用没有转到 web 方法,错误显示如下

"Message":"无效的 Web 服务调用,缺少参数值: \u0027obj\u0027."`

我不知道发布数据有什么问题。 我使用 Ajax 调用发布的数据值,例如

{
    "jsondata": {
        "pagenumber": "0",
        "sortColumn": "Name",
        "sortDirection": "asc",
        "rowPerPage": "10"
    },
    "key": "PPCrAV0oUGhy1cRdNEiN/ohdzAwD3+Qyyn5ozvhZ1B6STo0KrY+/Vggfnc4v12JS"
}

我在 Ajax 发布数据中找不到任何错误。

employeebrowse.aspx.cs 页面中的 Webmethod 我写的如下所示

[WebMethod(EnableSession = true)]
        [ScriptMethod(UseHttpGet = false)]
        public static JSONResponse GetData(JSONRequest obj)
        {
            JSONResponse objJSONResponse = new JSONResponse();
            SessionHelper objSessionHelper = new SessionHelper();

            return objJSONResponse;
        }

我写的 JSONRequest 类如下所示

 public class JSONRequest
 {
        public object jsondata;
        public string key;
 }

如果有人有任何想法,请分享。

谢谢。

【问题讨论】:

  • 写成public static JSONResponse GetData(object jsondata, string key)有区别吗?

标签: jquery asp.net json ajax asp.net-ajax


【解决方案1】:

尝试在服务器端创建一个变量,就像你的类一样,然后试试这个 ajax 代码:

//JSONRequest
    var obj = {
         jsondata : {
             pagenumber: "0",
             sortColumn: "Name",
             sortDirection: "asc",
             rowPerPage: "10"
         },
         key: "PPCrAV0oUGhy1cRdNEiN/ohdzAwD3+Qyyn5ozvhZ1B6STo0KrY+/Vggfnc4v12JS"
     };
//call server side method
     $.ajax({
        type: "POST",
        data: obj,
        url: 'employerbrowse.aspx/GetData',
        success: function (data) {
            conosle.log(data);
        },
        error: function (error) {
            console.log(error);
        }
    });

我删除了contentType: "application/json; charset=utf-8",,这样你就可以像在你的网络方法中传递你的类参数的形式一样传递参数。

【讨论】:

    猜你喜欢
    • 2015-11-18
    • 2013-06-27
    • 2020-07-28
    • 1970-01-01
    • 2015-01-03
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    相关资源
    最近更新 更多