jqueryを使用して、いくつかのテーブルを含むデータセットを返すWebサービスを呼び出しています。System.Globalization.CultureInfoタイプのオブジェクトをシリアル化している間に循環参照が検出されました
パラメータを受け入れるために私のwebmethodを設定する必要があるまで、これはうまくいきました。私はこれをクライアント側に反映しました
data: "{paramname:'" + paramval+ "'}",
webmethodが戻るときに次のエラーが表示されます。これは、データセットWebMethod属性は、クライアント側のJSは、データを除いて以下のように同じに見えるパラメータはありません
Error:{"Message":"A circular reference was detected while serializing an object of type \u0027System.Globalization.CultureInfo\u0027.","StackTrace":" at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat)\r\n at ...etc
に返されるいただきまし関わらず起こる:行が削除されます。
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},
に要求を変更する提案を1として、次のエラーをもたらします。
Error:{"Message":"Invalid JSON primitive: paramval.","StackTrace":"
at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String input)\r\n at System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext context, JavaScriptSerializer serializer)\r\n at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.ArgumentException"} Status: 500
で同じ
はちょうどあなたが(実際のJSON VS)文字列としてJSONデータを送信する権利あり、注意します。あなたは、エラーを解決する方法に質問を言い換えてみてください: 「タイプ可能System.Globalization.CultureInfoのオブジェクトをシリアル化しながら、循環参照が検出されました」 (サーバーで何が起こっているかである) – meandmycode