2013-07-18 2 views
0

Вот вход AJAX, который я сделал.JSON печатает вместо перенаправления

$(function() { 
    $('#loginform').submit(function(){ 

     var uname = $('#username').val(); 
     var password = $('#password').val(); 

     $("#loading").show(); 
     $("#loading").fadeIn(400); 

     $.POST('php/authorization.php', (username: uname, password: password), 
      function(asd) { 
      if(asd.success){ 
       location.href = asd.redirect; 
      }else{ 
       $('.error').html(asd.message); 
      }; 
     }, 'json'); 

     return false; 
    }); 

}); 

и PHP Отрывок

if($data = mysql_fetch_assoc($raw)) 
{ 
    $_SESSION['loggedin'] = true; 
    $_SESSION['uid'] = $data['u_id']; 
    $_SESSION['uname'] = $data['u_name']; 
    $_SESSION['utype'] = $data['u_type']; 
    $_SESSION['uactive'] = $data['u_active']; 
    mysql_close($link); 

    $asd['success'] = true; 
    $asd['redirect'] = '../dashboard.php'; 
} 
else 
{ 
    mysql_close($link); 

    $asd['success'] = false; 
    $asd['message'] = "Wrong username or password"; 
} 

echo json_encode($asd); 

Проблема заключается в том, вместо того, чтобы перенаправлять или делать какие-либо действия, то PHP печатает {"success":true,"redirect":"..\/dashboard.php"} вместо этого.

Почему? Заранее спасибо.

+0

Вы отредактировали вопрос .. разве это не вызвало проблему? –

+1

Можете ли вы обновить фрагмент кода для работы? Так как есть много ошибок, но они, вероятно, просто ваши опечатки. 'POST' не должен быть заглавными, вы поместите'() 'вместо' {} ' – loganfsmyth

+0

Также, что вы подразумеваете под« PHP печатает ... вместо этого »? Вы имеете в виду, что страница обновляется, чтобы показать это? Предполагается, что PHP напечатает только то, что вы показали. – loganfsmyth

ответ

1

Попробуйте изменить:

$.POST('php/authorization.php', (username: uname, password: password), ... 

Для

$.post('php/authorization.php', {username: uname, password: password}, ... 

Я думаю, что происходит с вами в том, что эти ошибки предотвратить JavaScript запуск, таким образом, return false; никогда не выполняется и ваша форма просто представляет регулярно ,

+0

Извините. Это была глупая ошибка (я переписываю этот код, чтобы просто спросить здесь, и я пропустил это. Отредактировал уже). Я все еще удивляюсь, почему это не сработало (хотя имя объекта ответа верное) – rolodex

+0

@YotamOmer Отступы затрудняют просмотр, но он возвращает false из обработчика, который должен его покрывать. – loganfsmyth

+0

@loganfsmyth да просто посмотрел на него ..:/ –

Смежные вопросы