В оригинальном коде три мелочи, достойные улучшения.
1. Парсить JSON самому
не надо:
$.ajax({
dataType: 'json'
});
2. Передавать
{'ajax':'1'}
не надо, AJAX посылает заголовок
X-Requested-With: XMLHttpRequest
, по которому нужно определять, что это AJAX.
3. Кавычками обрамлять ключи в словаре не нужно:
{
some: 'some'
}
Ну и да, ошибки должны возвращатся с кодом HTTP, а не своим полем.