jQuery AJAX GET/POST requête retourne 404 dans le gestionnaire d'erreur, mais valide, la réponse est envoyée à partir du serveur

Le Problème: j'ai envoyer de requête GET ou POST avec jQuery.ajax et d'obtenir un gestionnaire d'erreur déclenchée avec la 404. La chose est, j'ai utilisé un renifleur pour vérifier la réponse du serveur et c'est une bonne réponse de 200 avec un bon JSON (retourné par Python json.décharges).
Et quelque chose de bizarre: après cet appel se termine avec 404 un navigateur recharge la page.

Tout ce qui vit dans le même domaine et sous-domaine).

jQuery appel:

$.ajax({type: "POST", url: "/m/auth/login", data: {x: "y"},
success: function(result) {}, error: function(xhr) {}, dataType: "json"});

Réponse comme on le voit par la sniffer avec une charge utile décompressé:

HTTP/1.1 200 OK\r\n
Content-Type: text/html; charset=utf-8\r\n
Cache-Control: no-cache, must-revalidate\r\n
Content-Encoding: gzip\r\n
X-AppEngine-Estimated-CPM-US-Dollars: $0.000018\r\n
X-AppEngine-Resource-Usage: ms=71 cpu_ms=0\r\n
Vary: Accept-Encoding\r\n
Date: Tue, 24 Dec 2013 21:04:36 GMT\r\n
Pragma: no-cache\r\n
Expires: Fri, 01 Jan 1990 00:00:00 GMT\r\n
Server: Google Frontend\r\n
Content-Length: 80\r\n
Alternate-Protocol: 80:quic,80:quic\r\n
\r\n
{"reason": {"password": "missing", "email": "missing"}, "error": "argument"}
Je ne suis pas sûr que je comprends la série d'événements le client est confronté ici. Le client charge une page à partir de l'App Engine application en Python. La page fait requête HTTP asynchrone à l'application avec des jQuery.ajax. L'application propose un 200 avec une bonne JSON corps. jQuery a mal interprété la réponse 404, et recharge la page? Est ce correct? Êtes-vous à l'aide de la Chrome Developer Tools pour vérifier les requêtes/réponses? Ce qui vous dit qu'il est la réception de la 404?

OriginalL'auteur Artaxerxes | 2013-12-24