wake-up-neo.com

So implementieren Sie den Header "Access-Control-Allow-Origin" in asp.net

Ist es möglich, den Header "Access-Control-Allow-Origin" in asp.net zu implementieren

30
Nitin Sawant

Von enable-cors.org :

CORS unter ASP.NET

Wenn Sie keinen Zugriff auf die Konfiguration von IIS haben, können Sie den Header trotzdem über ASP.NET hinzufügen, indem Sie den Quellenseiten die folgende Zeile hinzufügen:

Response.AppendHeader("Access-Control-Allow-Origin", "*");

Siehe auch: Konfigurieren von IIS6 / IIS7

59
dtb

Eine andere Möglichkeit ist, es direkt in der web.config hinzuzufügen:

<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>

....__ Ich fand das in hier

13
DanielV

1.Installationspaket Microsoft.AspNet.WebApi.Cors

2 Fügen Sie diesen Code in WebApiConfig.cs hinzu.

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. Fügen Sie dies hinzu 

using System.Web.Http.Cors; 

4. Fügen Sie diesen Code im API-Controller hinzu ( HomeController.cs ).

[EnableCors(origins: "*", headers: "*", methods: "*")]
public class HomeController : ApiController
{
    [HttpGet]
    [Route("api/Home/test")]
    public string test()
    {
       return "";
    }
}

Sie benötigen ein HTTP-Modul, das sich die angeforderte Ressource angesehen hat. Wenn es sich um ein css oder js handelt, muss es den Header Access-Control-Allow-Origin mit der Anforderer-URL verwenden, es sei denn, Sie möchten, dass es mit '*' weit geöffnet wird.

1
Westley

Das Konfigurieren der CORS-Antwortheader auf dem Server war nicht wirklich eine Option. Sie sollten einen Proxy-Client konfigurieren.

Beispiel für Angular - Also habe ich eine proxy.conf.json-Datei erstellt, die als Proxy-Server dient. Unten ist meine proxy.conf.json-Datei:

{
  "/api": {
    "target": "http://localhost:49389",
    "secure": true,
    "pathRewrite": {
      "^/api": "/api"
    },
    "changeOrigin": true
  }
}

Legen Sie die Datei in demselben Verzeichnis ab wie die package.json. Dann habe ich den Startbefehl in der package.json-Datei wie folgt geändert

"start": "ng serve --proxy-config proxy.conf.json"

der http-Aufruf von der App-Komponente lautet nun wie folgt:

return this.http.get('/api/customers').map((res: Response) => res.json());

Zum Ausführen von npm start oder ng dienen --proxy-config proxy.conf.json

0
Elialber Lopes