Почему POST параметры ajax запроса не приходят к серверу?
как писали уже выше, в data необходимо передавать объект.
А jQuery.serialize() делает GET-параметры, от того GET запрос в вашем примере прекрасно отработает.
Если вам лень разбираться что и как, предлагаю такой код:var str = $("#register_user").serialize();
var temp = str.split('&');
var request = {};
for (var i = 0; i < temp.length; i++) {
  var pieceRequest = temp[i].split('=');
  request[pieceRequest[0]] = pieceRequest[1];
}
и в ваш аякс запрос data передавать request вместо str
1. Проверьте в chrome dev tools, что данные у Вас действительно уходят
2. Если уходят, проверьте редиректы на сервере, возможно, срабатывает какая-либо валидация и отправляет этот запрос редиректом куда-либо.