[Ajax] pb de charset en POST

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Ajax] pb de charset en POST

par Ryle » 18 mars 2006, 17:24

Yep, je viens d'essayer cela fonctionne :)

Mais dans la mesure ou je fait tout en iso, je pensais pouvoir ne pas m'encombrer d'utf8.

Si j'ai bien compris, ajax le converti automatiquement à cause du "urlencoded" qui est dans le setRequestHeader du post, et le fait d'y préciser le charset n'y change apparement rien..

bah tant pis, on va décoder.. merci de ta réponse en tout cas :)

par rami » 18 mars 2006, 14:32

Pourquoi tu ne récupères pas les données provenant du javascript en faisant un utf8_decode()?

[Ajax] pb de charset en POST

par Ryle » 18 mars 2006, 01:17

Bonsoir,

J'ai un petit soucis de charset avec un script qui fonctionne en ajax pour envoyer et insérer des données en base.

La méthode get fonctionne très bien, tandis que la méthode post m'encode les accents et autre en utf-8 en dépit du header que je spécifie :

Code : Tout sélectionner

if(method == "GET") { if(data != 'null') url = url + "?" + data; xmlReq.open("GET", url, true); //ouverture asynchrone xmlReq.send(null); } if(method == "POST") { xmlReq.open("POST", url, true); //ouverture asynchrone xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1"); xmlReq.send(data); }
La méthode GET (sans header) fonctionne très bien, mais j'aurais aimé résoudre ce problème pour pouvoir faire du post également...

Sur la page qui envoi les donées, j'ai un meta iso-8859-1 :

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
idem sur celle qui reçoit et stock en base
header('Content-Type: text/html; charset=ISO-8859-1');
qu'est ce qui manque ? qu'est ce qui éventuellement n'irait pas ?

Merci d'avance