Недопустимая проблема JSON при вызове asp.net jquery ajax
Привет
Я сталкиваюсь со странной проблемой при получении ответа на вызов ajax, когда запускаю его на страницу.
Я использую jquery для публикации данных в коде
Javascript -
var jsonData = { "a": JSON.stringify(obj1),"b": JSON.stringify(obj2)};
jsonData = JSON.stringify(jsonData);
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: 'Page.aspx/AjaxCall',
async: true, cache: true, data: jsonData, dataType: "json",
success: function (msg) {
alert('hurray! Success. ' + msg.d);
},
error: function (xhr, textstatus, errorThrown) {
alert('there was an error' + errorThrown);
}
});
C #
[WebMethod]
public static string AjaxCall(string a, string b)
{
Dictionary<object, Dictionary<string, object>> x = new Dictionary<object, Dictionary<string, object>>();
Dictionary<string, object> z = new Dictionary<string, object>();
Dictionary<object, object> y = new Dictionary<object, object>();
int u = 0;
int v = 0;
// deserialise z class
try
{
if (!string.IsNullOrEmpty(b))
{
z = (Dictionary<string, object>)new JavaScriptSerializer().Deserialize(b, typeof(Dictionary<string, object>));
if (z.ContainsKey("IsProctored"))
y.Add("BlurCount", z["BlurCount"]);
if (z.ContainsKey("IsCrossClicked"))
{
y.Add("IsCrossClicked", z["IsCrossClicked"]);
}
}
}
catch (InvalidOperationException ioe)
{
throw new Exception();
}
// deserialise items class
try
{
x = (Dictionary<object, Dictionary<string, object>>)
new JavaScriptSerializer().Deserialize(a, typeof(Dictionary<object, Dictionary<string, object>>));
}
catch (InvalidOperationException ioe)
{
throw new Exception();
}
if (u == 0)
{
throw new Exception();
}
if (v == 0)
{
throw new Exception();
}
if (x.Count == 0)
{
//throw new Exception();
}
try
{
// saves the data in backend
SaveResponse(u, v, x, y);
}
catch (Exception ex)
{
throw new Exception();
}
return "response fired";
}
Я получаю сообщение об ошибке «Неверный JSON» (на вкладке ответа Firebug вызова ajax). Хотя это простой вызов ajax.
Я немного растерялся, почему это может происходить, потому что это работает в большинстве случаев и не работает в некоторых других.
Любая идея будет очень полезна.
спасибо!