définir le type de contenu en utf-8 avec angularjs $http
Je suis en téléchargeant un formulaire avec des fichiers, du texte etc, à la appengine blobstore:
$http({
method: 'POST',
url: the_url,
transformRequest: formDataObject,
data: event,
headers: {'Content-Type': undefined}
})
La demande envoie avec succès avec le prédécesseur d'en-tête:
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryYeRxOO7y3qHNWd83
Quand j'ai essayer de définir le type de contenu pour "multipart/form-data;charset=UTF-8"
je perds la frontière et obtenez une erreur dans la réponse: Bad content type. Please use multipart.
Quelle est la bonne façon d'ajouter de l'UTF-8 charset?
OriginalL'auteur robert king | 2013-12-09
Vous devez vous connecter pour publier un commentaire.
Selon la RFC 1341:
As stated in the definition of the Content-Transfer-Encoding field, no encoding other than "7bit", "8bit", or "binary" is permitted for entities of type "multipart". The multipart delimiters and header fields are always 7-bit ASCII in any case, and data within the body parts can be encoded on a part-by-part basis, with Content-Transfer-Encoding fields for each appropriate body part.
Donc vous devez utiliser
Content-Transfer-Encoding
au lieu deContent-Type
dans ce cas.Définir des en-têtes:
headers: { 'Content-Transfer-Encoding': 'utf-8' }
au lieu de ce que vous avez maintenant.avec les en-têtes: { 'Content-Transfer-Encoding': 'utf-8'} - je obtenir: a Refusé d'dangereuses en-tête "Content-Transfer-Encoding" angulaire.js:6649 (fonction anonyme) angulaire.js:6649 q angulaire.js:203 (fonction anonyme) angulaire.js:6648 y angulaire.js:6518 g angulaire.js:6252 r angulaire.js:9042 r angulaire.js:9042 (fonction anonyme) angulaire.js:9128 g.$eval angulaire.js:9953 g.$digest angulaire.js:9809 g.$appliquer angulaire.js:10039 (fonction anonyme) angulaire.js:15394 (fonction anonyme) angulaire.js:2246 q angulaire.js:196 Nc.c
Hmm. Je suis à court d'idées, alors. Désolé.
J'ai marqué votre question car il a jeté une certaine lumière sur la situation & le fait que je n'ai pas besoin de l'utf-8.
OriginalL'auteur Jeff Hubbard
Ma solution a été de ne rien changer:
Il s'avère à l'aide de
headers: {'Content-Type': undefined}
était correcte. Tout fonctionne maintenant (et j'ai seulement changé le backend).Problème est que webob était ignorant les codages et j'ai donc pensé les codages ont été mauvais. La mise à niveau de webob résolu ce problème. La raison de ce qui a été difficile à détecter parce que le serveur de développement a été l'aide de la nouvelle webob par défaut, tandis que la production de la défaillance d'une ancienne webob version depuis la nouvelle version n'était pas spécifié dans l'app.yaml:
OriginalL'auteur robert king
le jeu de caractères doit être réglé après tout, comme:
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryYeRxOO7y3qHNWd83; charset=UTF-8
OriginalL'auteur Tiago Medici