как писали уже выше, в 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