Alors, je suis coincé dans un comportement étrange, c'est-à-dire que je suis capable d'envoyer des données (ou de poster) à l'aide de p> mais pas en mesure de Envoyez-le de mon fichier HTML qui se trouve en dehors du projet. Il montre l'erreur suivant lorsque j'ouvre le HTML en Chrome: P> Postman (plug-in chrome) code> ou en utilisant
RETCLIENT (extension de Firefox ) code>,
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=301879
-->
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<appSettings></appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
<httpRuntime targetFramework="4.5" />
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
</modules>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Request-Headers:" value="*" />
<add name="Access-Control-Request-Method:" value="*" />
<add name="Access-Control-Allow-Methods" value="*" />
<!--<add name="Allow" value="*"/>-->
</customHeaders>
</httpProtocol>
<handlers>
<remove name="WebDAV" />
<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>
<directoryBrowse enabled="true" />
</system.webServer>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
<connectionStrings>
<add name="MastarsFriendsMVCDatabaseEntities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string="data source=WIN-WWU3DMLR6PX\PIXIELIT;initial catalog=MastarsFriendsMVCDatabase;persist security info=True;user id=sa;password=sa_12345;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
4 Réponses :
WebAPI bloque probablement la demande CORS. Pour activer Cors sur WebAPI, utilisez le package Microsoft.aspnet.Webapi.cors. Pour plus de détails, check http: //www.asp .NET / Web-API / Vue d'ensemble / Sécurité / Activation-Croix-Origine-Demandes-in-Web-API P>
OK. Résolu le problème avec l'aide de @martennis Répondre, mais avec une petite correction.
Tout ce qui est parfait, juste pour prendre soin de vous, nous devons entrer la commande suivante dans la console de gestionnaire de packages: P>
using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using System.Web.Http.Cors; namespace WebApiRESTfulwithJSON { public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API configuration and services var cors = new EnableCorsAttribute("*", "*", "*"); config.EnableCors(cors); // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } } }
Résolu mon problème!
Pas besoin de webconfig, tout ce dont vous avez besoin est d'ajouter:
services.AddCors(o => o.AddPolicy("MyPolicy", builder => { builder.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader(); }));
supprimer "à l'aide de system.web.mvc" de la classe de contrôleur a résolu ce problème pour moi. P>
Voir si cela aide Stackoverflow.com/Questtions/19162825/...
@Milindanantwar monsieur, j'applique déjà la solution dans mon projet. Mais pas de succès ... :(