Angular $ http service - force à ne pas analyser la réponse à JSON
J'ai un "test.ini" fichier de mon serveur, contenir le texte suivant:
"[ALL_OFF]
[ALL_ON]
"
Je vais essayer d'obtenir le contenu de ce fichier via $http
service, voici une partie de ma fonction:
var params = { url: 'test.ini'};
$http(params).then(
function (APIResponse)
{
deferred.resolve(APIResponse.data);
},
function (APIResponse)
{
deferred.reject(APIResponse);
});
Cette opération a obtenu Angulaire exception (SyntaxError: Unexpected token).
J'ai ouvert l'angle de cadre de fichier, et j'ai trouvé l'exeption:
Parce que le texte contenu du fichier commence par "[" et à la fin avec "]", Angulaire "pense" c'est un fichier JSON.
Ici est l'angle de code (ligne 7474 dans 1.2.23 version):
var defaults = this.defaults = {
//transform incoming response data
transformResponse: [function(data) {
if (isString(data)) {
//strip json vulnerability protection prefix
data = data.replace(PROTECTION_PREFIX, '');
if (JSON_START.test(data) && JSON_END.test(data))
data = fromJson(data);
}
return data;
}],
Ma question:
Comment puis-je force angulaire de pas faire cette vérification (if (JSON_START.test(data) && JSON_END.test(data))
) et pas analyser le texte de la réponse en JSON?
source d'informationauteur cheziHoyzer
Vous devez vous connecter pour publier un commentaire.
Vous pouvez remplacer les paramètres par défaut en ceci:
La fonction ci-dessus remplace la valeur par défaut de la fonction vous avez postet pour cette requête HTTP.
Ou lire cette où ils ont écrit "substitution de la valeur par Défaut des Transformations Par la Demande".
Vous pouvez également forcer angulaire pour traiter la réponse sous forme de texte brut et non JSON:
Cela permettra de s'assurer que Angulaires ne pas essayer de détecter automatiquement le type de contenu.