Почему не передается переменная из PHP в JavaScript?

Доброго времени суток. Есть вот такой обработчик формы:
$(document).ready(function(){
	"use strict";
 $("#butF").click(function(){	
 	var name=$("#name").val();
    var mail=$("#e-mail").val();
	var txt=$("#txt").val();
	var em=$("#em").val();
	if(name===""){
    alert("ВВЕДИТЕ ИМЯ");
	return false;}
	if(txt===""){
	alert("ВВЕДИТЕ СООБЩЕНИЕ");
	return false;}
	if(em!=="1@2 (не изменяйте это поле)"){
	alert("ОШИБКА ВВОДА");
	$("#em").val("1@2 (не изменяйте это поле)");
	return false;}
	if(mail.indexOf('@')<0){
	alert("ВВЕДИТЕ EMAIL");
	return false;}
  		
 });
  $('#contact').submit(function (e) {
    e.preventDefault();
    var data=$("#contact").serializeArray();
    $.ajax({
		type:'post',
        url: "php/contact.php",
        data: data,
		dataType:'json', 
		succes:function(data){alert(data.name);
		$("#name,#e-mail,#txt").val("");},
		error:function(){alert("ОШИБКА, ПОПРОБУЙТЕ ЕЩЕ РАЗ");},
		complete: function(data){alert(data.name);}
		});});
});

и PHPскрипт:
<?php
header ("Content-Type: text/html; charset=utf-8");
echo error_reporting(E_ALL);
$name=strip_tags($_POST["name"]);
$mail=strip_tags($_POST["e-mail"]);
$txt=strip_tags($_POST["txt"]);
$mes="$name.\n$mail.\n$txt";
$mes= wordwrap($mes, 70, "\n");
$headers= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n"; 
$headers .= "From: Тестовое письмо <no-reply@test.com>\r\n";
$ans='ошибка сервера, поробуйте еще раз'; 
if(mail('wasa20081980@mail.ru',$mail,$mes,$headers))
{$ans='сообщение отправлено';}
echo json_encode(array(
        'name' => $ans
    ));
	exit();
?>

почти все работает)
почему срабатывает функция "error:" ?
функция "complete: function(data){alert(data.name);" возвращает значение "undefined".
Люди помогите!
  • Вопрос задан
  • 360 просмотров
Решения вопроса 1
@max0ua
Замените
header ("Content-Type: text/html; charset=utf-8");
на
header ("Content-type: application/json");

да и
echo error_reporting(E_ALL);
стоит заменить на
error_reporting(E_ALL);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Откройте консоль в браузере (F12), вкладка network (сеть).
Найдите POST php/contact.php и посмотрите что приходит в ответе с сервера.
Ответ написан
@ruboss
Удалите "echo error_reporting(E_ALL);"
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы