ajax post - je veux changer l'-tête Accept-Encoding valeur
Je suis à l'aide de jQuery ajax pour appeler mon service WCF avec un HTTP POST. La réponse est GZIP codé, et cela provoque des problèmes dans mon environnement. (Voir cette question). Si la réponse n'est pas GZIP codé tout va bien.
Donc à la recherche dans un violon, je vois que le jQuery requête générée a les en-têtes suivants:
Accept-Encoding: gzip,deflate,sdch
Si, par fiddler, j'ai modifier cette valeur à None
, alors la réponse est non compressé, ce qui est ce que je veux. Tout ce que je dois faire est de changer la valeur dans le "Accept-Encoding" en-tête.
Il semble qu'il n'est pas possible de modifier cette valeur d'en-tête via le .ajax
de commande. (Voir ce post sur le forum).
Quelqu'un peut me dire quelles sont les options que je dois changer cette valeur d'en-tête.
Voici ma tentative. Mon headers
paramètre semble être ignoré.
$telerik.$.ajaxSetup({
accepts: 'application/json, text/javascript, */*'
});
var parameters = {
"playerId": args.playerId
};
var dataInJsonFormat = '{ "playerId": ' + args.playerId + '}';
var ajaxCallParameters = {
accepts: 'application/json, text/javascript, */*',
async: true,
cache: false,
contentType: "application/json; charset=utf-8",
url: "../Services/CmsWebService.svc/SendUpdateRequestToPlayer",
headers: { "Accept-Encoding" : "None" },
type: "POST",
data: dataInJsonFormat,
dataType: 'json',
error: function (jqXHR, textStatus, errorThrown) {
var errorString = 'Error thrown from ajax call: ' + textStatus + 'Error: ' + errorThrown;
var displayPanel = document.getElementById('requestStatusUpdateResults');
$telerik.$(displayPanel).text(errorString);
},
success: function (data, textStatus, jqXHR) {
var displayPanel = document.getElementById('requestStatusUpdateResults');
$telerik.$(displayPanel).text(data.d);
}
};
$telerik.$.ajax(ajaxCallParameters);
OriginalL'auteur Andrew Shepherd | 2011-11-03
Vous devez vous connecter pour publier un commentaire.
Cette valeur est probablement remplacé plus tard dans le processus.
Essayer de la mise en œuvre de
beforeSend
comme on le voit dans la démo de code ci-dessous et la valeur d'en-tête(s) de la demande finale maintenant (croisons les doigts).OriginalL'auteur timecode
Ce n'est pas possible parce que de choisir le bon type de codage par navigateur.
Si vous faites cela
Vous verrez ce message d'erreur:
Ref: App Engine Accept-Encoding
OriginalL'auteur uzay95
Je ne suis pas sûr que "aucun" est une option valable. Je crois que si vous définissez les en-têtes d'accepter l'encodage 'deflate' plutôt que 'none', qui devrait régler votre problème.
par exemple
Ah, je vois. Ma plus longue réponse doit alors aider.
OriginalL'auteur timecode