2010-07-31 4 views
1

La fonction de rappel de JQuery.post() est appelée avec JQuery 1.3.2 mais pas avec 1.4.2. J'ai essayé de trouver ce qui a changé entre les versions sans succès.Fonction de rappel JQuery.post() appelée en 1.3.2 mais pas en 1.4.2

<html> 
<head> 
<script type="text/javascript" 
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" 
></script> 
<script type="text/javascript"> 
function f() { 
    var j; 
    $.post('/python/publisher/jqueryjson.py', {x: 1}, function(j){g(j);}, 'json'); 
} 
function g(j) { 
    console.log(j.result); 
} 
</script> 
</head> 

<body> 
<input type="button" onclick="f();"> 
</body> 
</html> 

Response Headers 

HTTP/1.1 200 OK 
Date: Sat, 31 Jul 2010 18:55:26 GMT 
Server: Apache/2.2.3 (CentOS) 
Content-Length: 14 
Connection: close 
Content-Type: application/json 

Request Headers 

POST /python/publisher/jqueryjson.py HTTP/1.1 
Host: teste.dkt 
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.7) Gecko/20100723 Fedora/3.6.7-1.fc13 Firefox/3.6.7 
Accept: application/json, text/javascript, */* 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 115 
Connection: keep-alive 
Content-Type: application/x-www-form-urlencoded; charset=UTF-8 
X-Requested-With: XMLHttpRequest 
Referer: http://teste.dkt/python/publisher/jqueryjson.html 
Content-Length: 3 
Pragma: no-cache 
Cache-Control: no-cache 

Répondre

1

Je crois comme solution de contournement, vous pouvez passer à l'aide .ajax $() (en POST/mode de synchronisation si nécessaire), le rappel de « succès » sur ce semble fonctionner pour moi tandis que d'autres (comme "complète") ne le font pas. EDIT: Il peut également y avoir une adhérence d'analyse syntaxique JSON plus stricte dans jQuery 1.4+ - vous recommandons de vérifier votre sortie JSON avec un site tel que http://jsonlint.com/ ... si elle ne valide pas, vous risquez de ne pas recevoir votre rappel. Vérifiez les guillemets simples et doubles.

EDI2: Voir les informations ici sur l'analyse syntaxique jQuery 1.4+ JSON:

http://yehudakatz.com/2010/01/15/jquery-1-4-and-malformed-json/

+0

Oui le problème était malformé JSON. –

Questions connexes