projet vide de web.api, installez Microsoft.aspnet.webapi.cors 5.2.3, ajoutezAPI Web 2 CORS IIS express et de débogage Pas de contrôle d'accès-allow-tête d'origine
config.EnableCors();
à webapiconfig. faire contrôleur et l'action
public class HomeController : ApiController
{
[EnableCors("*" , "*" , "*")]
public async Task<string> Get()
{
return await Task.FromResult("omg");
}
}
application de débogage et de la charge Fiddler et faire une demande de http://localhost:61939/api/Home
il n'y a pas en-têtes CORS présents. web.config contient:
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
ce que je manque? Pourquoi ne pas insérer un en-tête Access-Control-Allow-Origin dans toutes les demandes à ma méthode Get?
également la réponse de la définition CORS dans web.config n'est pas une réponse ... A un moment donné, je vais devoir ajouter une vérification d'origine et potentiellement même vérifier quelque chose comme méthode HTTP:
if(requestContext.HttpMethod == "POST" && (origin == "https://someplace.com" || origin == "http://localhost"))
Je ne suis pas sûr que je suis, je ne suis pas en utilisant owin (app.UseCors) –
Désolé, je ne l'ai pas remarqué qu'il ne l'utilise pipelines .I've édité la réponse, un autre regard – akazemis
Tout à fait raison, c'est tout ce qui me manquait, merci beaucoup! –