ajax, setRequestHeader(), Content-Type application/x-www-form-urlencoded en de charset

Ik heb moeite met het begrijpen van hoe de charset wanneer de
inhoudstype tekst/html, text/plain of text/xml, maar is application/x-www-form-urlencoded content type in plaats.

Gegeven deze (vereenvoudigde) javascript-code:

var xhr = new XMLHttpRequest();

Als ik niet expliciet de codering instellen,

xhr.open('POST', 'serv.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

firebug zegt me dat de inhoud
type “application/x-www-form-urlencoded; charset=UTF-8.”

Als ik de charset ISO-8859-1 bijvoorbeeld,

xhr.open('POST', 'serv.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');

firebug nog vertelt me “application/x-www-form-urlencoded; charset=UTF-8.”

Als ik probeer iets als

xhr.setRequestHeader('Content-Type', 'text/plain; charset=ISO-8859-1');

dan het respecteert de karakterset.

In alle gevallen de send() methode gaat als volgt:

xhr.send('id=9&name=Yoda');

Waarom is het niet eren van de charset ik geef als de Content-Type x-www-form-urlencoded?

OPMERKING: ik ben met behulp van ISO-8859-1 maar een voorbeeld te noemen. Mijn doel is om te begrijpen wat er aan de hand is.



One Reply
  1. 12

    De application/x-www-form-urlencoded mime-type niet ondersteunen parameters (zoals charset). Als je kijkt naar in deze sectie van de HTML5 spec, u zult zien hoe charset is bepaald (het is ingewikkeld). In het bijzonder, er is een opmerking aan de onderkant van de sectie te vermelden hoe de charset kan niet worden opgegeven als een parameter voor het mime-type.

    • interessant, dus hoe zorgen we voor een bepaalde sortering wordt gebruikt/het afdwingen van een bepaalde sortering?! moeten we gebruik maken van een formulier om dit te doen?

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *