.NET Web API Demande CORS PreFlight
J'ai quelques difficultés à faire PUT et DELETE de la SCRO demande à l'API Web sur d'autres domaine.
J'ai API codé par tutoriel http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api#create-webapi-project.
GET et POST Demandes fonctionne très bien, mais de SUPPRIMER et de METTRE ne pas. Je reçois ce message:
Failed to load resource: the server responded with a status of 405 (Method Not Allowed)
Failed to load resource: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Quand j'ai ajouter du code à WebConfig proposé sur Le soutien de la SCRO pour les METTRE et de les SUPPRIMER avec ASP.NET Web API , je ne reçois que la première erreur.
Quelqu'un peut-il m'aider, s'il vous plaît?
source d'informationauteur MilanG
Vous devez vous connecter pour publier un commentaire.
Vous pouvez ajouter un gestionnaire pour traiter ce type de demande.
Créer une classe dériver de "DelegatingHandler":
Plus tard dans WebApiconfig.cs dans le Registre de la méthode ajouter ceci:
De l'appel AJAX que vous faites sur le Web API est le déclenchement d'un contrôle en amont (HTTP verbe "OPTIONS"). Ce doit être traité par votre système, sinon vous obtiendrez l'erreur 405. Il y a quelques réponses sur la façon de le faire ici, comme:
La manipulation de la SCRO de contrôle en amont des demandes de ASP.NET MVC actions
Vous pouvez également éviter ce contrôle en amont appel tout à fait si vous suivez les directives suivantes.
Prises de http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api (sous "contrôle en amont des Demandes"):
Dans mon cas, de la SCRO n'étais pas de travail pour les demandes XHR avec en-tête personnalisé (car il nécessite OPTIONS de contrôle en amont à la demande). Je l'ai configuré de la SCRO, comme décrit dans la documentation officielle
Solution était d'ajouter à
web.config
Sans cette configuration IIS va intercepter OPTION de demande et après l'ajout de cette config ASP.NET peut-on manipuler.
J'ai trouvé la solution sur cette blog.
J'ai été confronté à un problème de contrôle en amont(erreur 404) sur requête GET avec firefox & les navigateurs chrome qui, de fait, converti à la demande d'OPTIONS,après avoir passé des heures, j'ai trouvé que si on enlève le type de Contenu du paramètre d'appel AJAX, nous pouvons obtenir les données à partir du serveur.