我正在使用web方法和ajax調用,但無法正確使用參數?使用jQuery將參數傳遞給WebMethod Ajax獲取錯誤
我已經通過一些固定工作,但沒有能夠解決我的問題?
我需要通過一個字符串,並讓我的web方法返回一個數據表,爲什麼有必要將它作爲json傳遞?
這裏是Ajax調用:
var jsdata = '{category:' + category + '}';
var jstext = JSON.stringify(jsdata, null, 2);
$.ajax({
type: "POST",
url: "GIFacRequest.aspx/GetSubCategories",
data: jstext ,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (dtSubCategory) {
PopulateSubCategoryDD(dtSubCategory);
},
error: function (response) {
$('body', document).html(response.responseText);
}
});
而且我的webmethod:
[System.Web.Services.WebMethod()]
[System.Web.Script.Services.ScriptMethod()]
public static DataTable GetSubCategories(string category)
{
}
我得到的錯誤如下:
「消息」:「不能將\ u0027System.String \ u0027類型的對象轉換爲 類型 \ System.Collections.Generic.IDictionary`2 [System.S特林,System.Object的] \ u0027" , 「堆棧跟蹤」:」 在 System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeInternal(對象 O,類型類型,JavaScriptSerializer串行器,布爾throwOnError, 對象& convertedObject個)\ r \ n在 System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeMain(對象 O,類型類型,JavaScriptSerializer串行器,布爾throwOnError, 對象& convertedObject個)\ r \ n在 System.Web.Script.Serialization.JavaScriptSerializer。反序列化(JavaScriptSerializer 串行器,字符串輸入,類型類型,Int32 depthLimit)\ r \ n在 System.Web.Script.Serialization.JavaScriptSerializer.Deser ialize [T](字符串 輸入個)\ r \ n在 System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext的 上下文,JavaScriptSerializer串行個)\ r \ n在 System.Web.Script.Services.RestHandler。 GetRawParams(WebServiceMethodData methodData,HttpContext的上下文)\ r \ n在 System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext的 上下文,WebServiceMethodData methodData)」, 「ExceptionType」: 「System.InvalidOperationException」
嘗試與阿賈克斯 –
只是'jsdata' @SridharR然後我得到的錯誤信息: 「無效的JSON原始:維護。」維護是我的變數。 – Pomster
請參閱http://stackoverflow.com/questions/736058/passing-parameter-to-webmethod-with-jquery-ajax? –