2016-08-03 14 views
2

Ich habe diese Ajax bekam dieSenden # Symbol mit 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; 
} 

Wenn Kommentar ist wie etwas zu PHP Kommentar Text senden Hope you like pancakes Es alles perfekt wieder, aber wenn Kommentar '#I #Like pancakes' ist es alles nicht zurück außer Fehler

Uncaught SyntaxError: Unexpected end of JSON input 
+1

Ich glaube nicht, das Problem ist mit dem Senden, ich denke, es ist mit dem Empfang. Aus irgendeinem Grund nimmt der AJAX-Aufruf an, dass der Server JSON zurückgibt, was nicht der Fall ist. – apokryfos

+0

Es gibt JSON zurück. Ich habe nur nicht den ganzen Code @apokryfos –

+0

@apokryfos Das klingt richtig, obwohl es nicht erklärt, warum es funktioniert, wenn der Kommentar nicht '#' Zeichen hat. – Barmar

Antwort

2

Sie müssen die Parameter URL-Codierung, wenn sie Sonderzeichen enthalten. Wenn Sie $.ajax verwenden, ist der beste Weg, um sicherzustellen, dass sie richtig codiert sind, ein Objekt anstelle einer Zeichenfolge für die Option data: zu verwenden.

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