J'ai récemment fait un peu de javascript inter-domaine en utilisant JSONP, et ASP.NET MVC.JQuery, XmlHttpRequest et le code de statut 0
L'action du contrôleur particulière répondra uniquement à une requête POST, ceci est voulu.
Dans IE8, je peux voir (via Fiddler2) que la réponse est correcte, et renvoyer une réponse HTTP 200, avec le javascript JSONP. Dans Firefox, Safari et Chrome, la réponse est toujours renvoyée, avec le code HTTP 200 approprié et le contenu JSONP, la seule différence est que l'objet XmlHttpRequest utilisé par JQuery définit le code d'état sur 0, et le responseText pour vider. À l'origine, je pensais que cela était dû au correctif d'accès HTTP COR (Http Access Control), par lequel un en-tête personnalisé ou un type de contenu autre que text/plain entraînerait l'envoi d'une requête HTTP supplémentaire (avec un OPTIONS). au serveur. Je peux voir dans Fiddler2 que la requête OPTIONS est en cours de réponse avec un HTTP 404.
Le serveur Web est IIS7 (mais le serveur Web de production sera une boîte IIS6). Dans IIS7, je peux voir le standard OPTIONSVerbHandler répertorié dans les gestionnaires, mais je ne suis pas convaincu que cela fonctionne réellement (en fait, je ne trouve même pas de documentation sur 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 changer le type de contenu à text/plain au lieu de application/json, et Firefox commence enfin à contourner la requête OPTIONS, et juste les POST . Le problème réside toujours dans une réponse vide (selon l'objet XmlHttpRequest), même si Fiddler2 montre qu'une réponse HTTP 200 réussie, avec le contenu est retourné.
Une aide?