Ну, вы не можете просто получить возврат 1, поскольку это не будет JSON. Если вы просто возвращаете «1» и выполняете parseInt, установите для dataType значение «html».
Если вы хотите JSON, сделайте это на своем PHP:
$return = array('code'=>1);
echo json_encode($return);
Ваша функция «успеха» будет выглядеть так:
if(msg.code==1){
window.location="index.html";
}
else if(msg.code==0)
{
$('#error_out').html(msg.code);
e.preventDefault();
}
else
{
// handle any other return value.
}
Хорошо, я виноват в том, что неправильно прочитал проблему. Проблема в том, что вы отправляете форму, а не отменяете ее должным образом. Сделайте это в вашем обработчике событий:
$(document).ready(function(){
$('#form').submit(function(e){
e.preventDefault();
register();
});
});
Вы можете удалить один в вашем случае сбоя. Он ничего не делает, так как к моменту возврата асинхронной функции стек уже очистился бы (если бы вообще).