Мой вызов jQuery ajax с ошибкой undefined ошибка. Мой JS код выглядит следующим образом:jQuery ajax вызов с ошибкой с неопределенной ошибкой
$.ajax({
type: "POST",
url: "Data/RealTime.ashx",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
timeout: 15000,
dataFilter: function(data, type) {
alert("RAW DATA: " + data + ", TYPE: "+ type);
return data;
},
error: function(xhr, textStatus, errorThrown) {
alert("FAIL: " + xhr + " " + textStatus + " " + errorThrown);
},
success: function(data) {
alert("SUCCESS");
}
});
Мой Аякса источник является родовым обработчик ASP.NET:
[WebService(Namespace = "http://my.website.com")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class RealTime : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
context.Response.Write("{ data: [1,2,3] }");
context.Response.End();
}
public bool IsReusable
{ get { return false; } }
}
Теперь, если я вернусь пустой объект ("{ }"
) в моем обработчике, то вызов будет добиться успеха. Но когда я возвращаю любой другой объект JSON, вызов завершается с ошибкой.
Обработчик dataFilter
показывает, что я получаю правильный объект. Firebug показывает ответ, как ожидалось, а вкладка JSON показывает, что объект правильно разбирается.
И что может быть причиной?
[Редактировать] Я должен был на самом деле написано «когда я вернусь любой недопустимый объект JSON, вызов не»! : D
Что у вас есть, недействительно JSON, что вы получаете, когда вы меняете его на это: 'context.Response.Write (" {\ "data \": [1,2,3]} "); –
Большое спасибо, что сделали. Firebug, очевидно, немного менее строг в разборе, поэтому я вообще не думал об этом. Вы можете скопировать это в ответ, чтобы я мог его принять. – Groo
Firebug не разбирается * JSON *, это разбор * Javascript * - есть разница. Если вы использовали Firebug для передачи этой строки в реализацию Javascript строгого парсера JSON, вы бы получили ошибки. – Pointy