За последние 24 часа нас посетили 54054 программиста и 1779 роботов. Сейчас ищут 859 программистов ...

Ajax запрос. $.get и $.ajax по разному работают с кирилицей

Тема в разделе "Прочие вопросы по PHP", создана пользователем shurik_shink, 6 июн 2015.

  1. shurik_shink

    shurik_shink Новичок

    С нами с:
    17 май 2015
    Сообщения:
    79
    Симпатии:
    0
    Проблема следующая
    если я использую для Ajax запроса метод $.get то русские символы отображаются правильно
    ответ от php скрипта
    если я использую для Ajax запроса метод $.ajax то русские символы во входящих параметрах отображаются кракозяблами. То есть каверкаются входящие параметры.
    ответ от php скрипта
    В обоих случаях используется один и тот же php скрипт. Все файлы в кодировке UTF-8. В скрипте ведется логирование в файл и в файл пишется нормальный русский текст.

    Подскажите кто знает с чем связана разница в работе процедур.

    Ниже привожу код Ajax запросов и код php скрипта.


    использование метода $.get
    Код (PHP):
    1. function fjs_to_php_get(){
    2.     var p1 = document.getElementsByName("ed1")[0].value;
    3.     var p2 = document.getElementsByName("ed2")[0].value;
    4.     
    5.     $.get("script1.php",
    6.           {"method" : "$.get", "p1" : p1, "p2" : p2},
    7.           function(data){$("#output").text(data);},
    8.           "HTML"
    9.     );
    10. } 
    использование метода $.ajax
    Код (PHP):
    1. function fjs_to_php_ajax(){
    2.     var p1 = document.getElementsByName("ed1")[0].value;
    3.     var p2 = document.getElementsByName("ed2")[0].value;
    4.     
    5.     $.ajax({method: "GET",              
    6.             url: "script1.php",
    7.             data: "method=$.ajax&p1="+p1+"&p2="+p2,
    8.             async: false,                 
    9.             success: function(data){$("#output").text(data);},
    10.             dataType: "HTML"
    11.     });
    12. } 

    php скрипт который возвращает ответ
    Код (PHP):
    1. <?php
    2.   header('Content-Type: text/html; charset=UTF-8');
    3.  
    4.   $v0 = isset($_GET["method"]) ? $_GET["method"] : "no value";
    5.   $v1 = isset($_GET["p1"]) ? $_GET["p1"] : "no value";
    6.   $v2 = isset($_GET["p2"]) ? $_GET["p2"] : "no value";
    7.  
    8.   $s = __FILE__;
    9.   echo $s."\n";
    10.   
    11.   $d = date('Y M j H:i:s');
    12.   echo $d."\n";
    13.  
    14.   printf("Использованный метод: %s \n\n", $v0);
    15.   printf("Вы ввели параметры: параметр1 = %s, параметр2 = %s \n", $v1, $v2);
    16.   
    17.   //логгирование работы скрипта - для проверки его работы
    18.   $dst = fopen("f_out.txt","w");
    19.   fputs($dst, "date={$d} \r\n");
    20.   fputs($dst, "p1={$v1} \r\n");
    21.   fputs($dst, "p2={$v2} \r\n");
    22.   fclose($dst);  
    23. ?>
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]