Я использую jquery для вызова веб-службы, которая возвращает набор данных с несколькими таблицами в нем.
Это работало нормально, пока мне не нужно было настроить мой веб-метод для принятия параметра. Я отразил это на стороне клиента с
data: "{paramname:'" + paramval+ "'}",
Теперь я получаю следующую ошибку, когда веб-метод возвращается. Это происходит независимо от того, что возвращается в наборе данных
Ошибка: {"Сообщение": "Обнаружена циклическая ссылка при сериализации
объект типа
\ u0027System.Globalization.CultureInfo \ u0027. "," StackTrace ":" в
System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal (Объект
o, StringBuilder sb, глубина Int32, объекты HashtableInUse,
SerializationFormat SerializationFormat) \ r \ n в ... и т. Д.
Когда у веб-метода нет параметров, клиентская сторона js выглядит так же, как показано ниже, за исключением строки data:
function ClientWebService(paramval){
$.ajax({
type: "POST",
url: "WebService1.asmx/webmethodName",
data: "{paramname:'" + paramval+ "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
ParseResult(msg.d);
},
error: function(err) {
if (err.status == 200) {
ParseResult(err);
}
else { alert('Error:' + err.responseText + ' Status: ' + err.status); }
}
});
}
Редактировать: в соответствии с предложением изменить запрос на
data: {paramname: paramval},
выдает следующую ошибку.
Ошибка: {"Сообщение": "Недопустимый примитив JSON: paramval.", "StackTrace": "
в
System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject () \ г \ п
в
System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal (Int32
глубина) \ r \ n в
System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize (String
ввод, Int32 deepLimit, сериализатор JavaScriptSerializer) \ r \ n в
System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (JavaScriptSerializer
сериализатор, строковый ввод, тип Type, Int32 deepLimit) \ r \ n в
System.Web.Script.Serialization.JavaScriptSerializer.Deserialize [Т] (Строка
вход) \ 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.ArgumentException "} Статус: 500