JQuery, XmlHttpRequest et Statut Code 0

J'ai récemment fait quelques Croix-domaine javascript à l'aide de JSONP, et ASP.NET MVC.

Le Contrôleur spécifique l'action ne pourra répondre à une demande POST, c'est par la conception.

Dans IE8, je peux voir (via Fiddler2) que la réponse est correcte, et le retour d'une réponse HTTP 200, avec le JSONP javascript.

Dans Firefox, Chrome et Safari, la réponse est toujours retourné, avec le code HTTP 200 et JSONP contenu, la seule différence est que l'objet XmlHttpRequest utilisé par JQuery est le paramètre le code d'état à 0, et le responseText à vide.

À l'origine, je pensais que c'était dû à COR HTTP Amont (Http de Contrôle d'Accès), dans lequel l'un en-tête personnalisé ou un type de contenu autres que text/plain serait la cause d'une requête HTTP supplémentaire (avec des OPTIONS), le verbe être envoyé au serveur. Je peux voir dans Fiddler2 que les OPTIONS de la demande ont répondu avec une erreur HTTP 404.

Le serveur web IIS7 (mais le serveur web de production sera un IIS6 encadré). Dans IIS7, je peux voir la norme OPTIONSVerbHandler répertoriés dans le gestionnaires, mais je ne suis pas convaincu que c'est en train de faire quoi que ce soit (en fait, je ne peux même pas trouver toute la documentation sur le OPTIONSVerbHandler n'importe où).

Pour contourner cela, j'ai modifié la bibliothèque JQuery pour ne pas définir l'en-tête personnalisé, et de modifier le content-type text/plain lieu de l'application/json, et Firefox commence enfin contournant la demande d'OPTIONS, et tout simplement Postes.

Le problème se situe toujours dans une réponse vide (en fonction de l'objet XmlHttpRequest), même si Fiddler2 montre que le succès d'une réponse HTTP 200, avec le contenu doit être retourné.

Toute aide?

OriginalL'auteur Matthew Abbott | 2009-07-23