ajax, setRequestHeader () Content-Type " application/x-www-form-urlencoded und charset
Ich habe Schwierigkeiten zu verstehen, wie legen Sie den Zeichensatz, wenn der
content-type nicht text/html, text/plain oder text/xml, aber ist application/x-www-form-urlencoded content-type statt.
Angesichts dieser (vereinfachten) javascript code:
var xhr = new XMLHttpRequest();
Wenn ich nicht explizit die Codierung,
xhr.open('POST', 'serv.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
firebug sagt mir, dass der Inhalt
Typ ist "application/x-www-form-urlencoded; charset=UTF-8."
Wenn ich den charset auf ISO-8859-1 zum Beispiel,
xhr.open('POST', 'serv.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
firebug noch sagt mir, "application/x-www-form-urlencoded; charset=UTF-8."
Wenn ich versuche so etwas wie
xhr.setRequestHeader('Content-Type', 'text/plain; charset=ISO-8859-1');
dann respektiert es die charset.
In allen Fällen kann die send () - Methode geht so:
xhr.send('id=9&name=Yoda');
Warum nicht die Ehre-charset, die ich angeben wenn die Content-Type x-www-form-urlencoded?
HINWEIS: ich verwende ISO-8859-1 nur als Beispiel. Mein Ziel ist es, zu verstehen, was Los ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
application/x-www-form-urlencoded
mime-Typ nicht unterstützt Parameter (wiecharset
). Wenn man sich dieser Abschnitt der HTML5-Spezifikation, Sie werden sehen, wie Zeichensatz bestimmt (es ist kompliziert). Insbesondere, es ist ein Hinweis am Ende von Abschnitt zu erwähnen, wie charset nicht angegeben werden, die als parameter den mime-Typ.