Задать вопрос
ksurill
@ksurill

Почему Ajax возвращает знаки вопроса (проблема с кодировкой)?

Я не силен в javascript и всяких ajax, поэтому объясню как могу:

Есть форма, данные из которой обрабатываются на отдельной странице и отправляются на e-mail, в случае успешной отправки ajax должен вернуть на страницу что-то типа "отправлено" но вместо этого приходит крокозябра.

Скрипт на странице

function SendForm(result_id,form_id,url) {
           jQuery.ajax({
			   
            url:     url, //Адрес подгружаемой страницы
            type:     "POST", //Тип запроса
            dataType: "html", //Тип данных
            data: jQuery("#"+form_id).serialize(),
            success: function(response) { //Если все нормально
            alert(response);
            },
              error: function(response) { //Если ошибка
              alert('Ошибка!');
			  
              }
             });
        }


php

<?php  $param1 =  $_POST['name'];  $param2 = $_POST['phone'];   $param3 = $_POST['comm']; 
header('Content-Type: text/html; charset=utf-8');

if (empty($param2)){ die('Введите телефон!'); }; 
$to  = "Admin <****@yandex.ru>"; /* ТУТ ЕМЕИЛ */
$subject = "С лендинга"; 
$message = 'Имя: '.$param1.', Телефон: '.$param2.', E-Mail: '.$param3; 
$mailheaders .= 'From: Landing <***@mail.ru>';
mail($to, $subject, $message, $mailheaders);
echo 'Спасибо, наш менеджер свяжется с вами.';
?>


Что сделать чтобы скрипт выводил ответ в нормальной кодировке а не вопросами?
  • Вопрос задан
  • 4847 просмотров
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
aen
@aen
Keep calm and 'use strict';
У php-файла со скриптом какая кодировка? Убедитесь, что она точно такая же что и у страницы. В идеале utf-8.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
AMar4enko
@AMar4enko
Попробуйте поставить Content-Type text/plain в заголовке отдачи
Ответ написан
AMar4enko
@AMar4enko
Ха, ну так потому что вы не html отдаете. Попробуйте
dataType: 'text'
или обмениваться json
dataType: 'json',
data: jQuery("#"+form_id).serialize(),
success: function(response) { //Если все нормально
            alert(response.message);
},

echo json_encode(array('message' => 'Спасибо и.т.д'))
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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