Ajax调用显示错误“无效的Web服务调用”

时间:2016-09-09 11:23:08

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

我正在调用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方法,错误显示为

  

“消息”:“无效的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;
 }

如果有任何想法请分享。

感谢。

1 个答案:

答案 0 :(得分:0)

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

Array
(
    ['S0'] => 0,
    ['S1'] => 28,
    ['S2'] => 0,
    ['S3'] => 6,
    ['S4'] => 2,
    ['S5'] = 0
)

我删除了//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); } }); ,因此您可以像在web方法中使用类参数的形式一样传递参数。