felony13twelve
@felony13twelve

Почему выводит ошибку?

Здравствуйте! Есть вот такой код
class AuthController extends ViewsLibrary { 
 
 public function actionSignin () { 
 if (isset($_POST['submit'])) { 
 echo json_encode(['name' => '1']); 
 } 
 $this->renderView('index/signin'); 
 } 
}

Страница будет вот такая "site.name/auth/signin"
Есть вот такой ajax запрос
$(document).ready(function () { 
 $('form').on('click', function () { 
 jQuery.ajax({ 
 url: '/auth/signin', 
 dataType: 'json', 
 data: $('form').serialize(), 
 success: function (response) { 
 result = $.parseJSON(response); 
 alert(result.name); 
 }, 
 error: function(response) { // Данные не отправлены 
 alert('Ошибка. Данные не отправлены.'); 
   } 
 }); 
 return false; 
 }); 
 });

Почему я когда нажимаю на кнопку, он не выводит мне "1", а выводит "Ошибка. Данные не отправлены."? Что я не так написал?
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Stairdeck
Скорее всего у Вас выводится при запросе не только json:
echo json_encode(['name' => '1']);


Но ещё и
$this->renderView('index/signin');

Поэтому js не может валидно спарсить json ответ. Не знаю, что за фреймворк в php вы используете, но разве Вам не нужен return в экшене?

Можете дать скрин ответа сервера? Найдите свой ajax запрос во владке Network (F12)
Ответ написан
Delgus
@Delgus
public function actionSignin () { 
 if (isset($_POST['submit'])) { 
 echo json_encode(['name' => '1']); 
 die; // <-------------------     stop!!!
 } 
 $this->renderView('index/signin'); 
 }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы