2016-08-03 2 views
2

Я получил это Ajax, отправляющие Текст комментария на PHPОтправка символ # с помощью AJAX для PHP

 $.ajax({ 
      type: "GET", 
      url: '../files/ajax.php', 
      data: "C=" + cc+"&I="+i, 
      success:function(data) { 
       alert(data); 
      } 
     }); 

if (isset($_GET["I"]) && isset($_GET["C"])) { 
    $RandS=$_GET["I"]; 
    $Comment=$_GET["C"]; 
    $Comment=trim($_GET["C"]); 
    $Comment=htmlspecialchars($_GET["C"]); 
    echo $Comment; 
} 

Когда комментарий что-то вроде Hope you like pancakes Он возвращает все отлично, но когда комментарий '#I #Like pancakes' она ничего не возвращает кроме ошибки

Uncaught SyntaxError: Unexpected end of JSON input 
+1

Я не думаю, что проблема с отправкой, я думаю, что это с получением. По какой-то причине вызов AJAX предполагает, что сервер возвращает JSON, которого нет. – apokryfos

+0

Он возвращает JSON.I просто не дал весь код @apokryfos –

+0

@apokryfos Это звучит правильно, хотя он не объясняет, почему он работает, когда комментарий не имеет символов '#'. – Barmar

ответ

2

Вам необходимо URL-кодировать параметры, если они содержат специальные символы. При использовании $.ajax лучший способ обеспечить правильность кодирования - использовать объект, а не строку для опции data:.

$.ajax({ 
    type: "GET", 
    url: '../files/ajax.php', 
    data: { C: cc, I: i }, 
    success:function(data) { 
     alert(data); 
    } 
}); 
Смежные вопросы