Est-il possible d'implémenter l'en-tête "Access-Control-Allow-Origin" dans asp.net
De enable-cors.org :
CORS sur ASP.NET
Si vous n'avez pas accès à la configuration d'IIS, vous pouvez toujours ajouter l'en-tête via ASP.NET en ajoutant la ligne suivante à vos pages source:
Response.AppendHeader("Access-Control-Allow-Origin", "*");
Une autre option consiste à l'ajouter directement à web.config:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="http://www.yourSite.com" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS"/>
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
</customHeaders>
</httpProtocol>
....__ J'ai trouvé cela dans ici
1.Install-Package Microsoft.AspNet.WebApi.Cors
2 Ajoutez ce code dans WebApiConfig.cs.
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.EnableCors();
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
3. Ajouter ceci
using System.Web.Http.Cors;
4. Ajoutez ce code dans Api Controller ( HomeController.cs )
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class HomeController : ApiController
{
[HttpGet]
[Route("api/Home/test")]
public string test()
{
return "";
}
}
Vous auriez besoin d’un module HTTP qui examine la ressource demandée et s’il s’agissait d’un fichier css ou js, l’en-tête Access-Control-Allow-Origin contenant l’URL du demandeur, à moins que vous ne souhaitiez l’ouvrir en grand avec «*».
La configuration des en-têtes de réponse CORS sur le serveur n'était pas vraiment une option. Vous devez configurer un proxy côté client.
Sample to Angular - J'ai donc créé un fichier proxy.conf.json pour agir en tant que serveur proxy. Ci-dessous mon fichier proxy.conf.json:
{
"/api": {
"target": "http://localhost:49389",
"secure": true,
"pathRewrite": {
"^/api": "/api"
},
"changeOrigin": true
}
}
Mettez le fichier dans le même répertoire que package.json puis j'ai modifié la commande de démarrage dans le fichier package.json comme ci-dessous
"start": "ng serve --proxy-config proxy.conf.json"
À présent, l'appel http du composant de l'application est le suivant:
return this.http.get('/api/customers').map((res: Response) => res.json());
Enfin, utilisez npm start ou ng serve --proxy-config proxy.conf.json