Mon service renvoie l'objet JSON suivant, avec l'en-tête Content-Type défini sur "application/javascript". Il est enveloppé dans des parens par instructions à json.org] 2, mais j'ai essayé avec et sans parens. Sans parens, il passe la vérification de jsonlint.Problème lors de l'analyse du résultat JSON avec le prototype
({"products": {"itemId": "0", "productId": "1234", "quantity": "4", "rank": "12", "subProductId": ""}, "txnId": "1"})
Si j'Eval explicitement la réponse, comme indiqué ci-dessous, je n'ai pas de problème:
var form = $('productListRequestForm');
form.request(
{
onSuccess :
function(response)
{
var json = eval(response.responseText);
rebuildWishlistTable(json);
},
onFailure :
function(response)
{
alert("AJAX request failed: " + response.responseText);
}
});
Cependant, si je compte sur Prototype analyse de la réponse et en passant le résultat de l'analyse en tant que second paramètre ma fonction comme ci-dessous, cette valeur est toujours nulle. Selon le Prototype docs, cela devrait fonctionner. Y a-t-il quelque chose qui me manque ou quelque chose qui leur manque?
var form = $('productListRequestForm');
form.request(
{
onSuccess : function(response, json)
{
rebuildWishlistTable(json);
},
onFailure :
function(response)
{
alert("AJAX request failed: " + response.responseText);
}
});
Non, en fait ce n'est pas le cas. Comme je le note dans mon post, l'eval explicite fonctionne - et comme je le note aussi, j'enveloppe le JSON en parens pour le faire. Le problème est que l'auto-évaluation de Prototype ne fonctionne pas, que le JSON soit enveloppé dans des parenthèses ou non. – kdgregory