Ich habe ein ASP.Net Core und ein Web-API-Projekt in der gleichen Lösung. Ich rufe Get, Post, Put, Delete von meinem Kernprojekt, das in meinem Api-Projekt definiert ist. Definitiv muss ich CORS aktivieren.Request-Header-Feld x-ms-request-root-id ist nicht erlaubt von Access-Control-Erlaube-Header in Preflight-Antwort
Bellow ist der Code, den ich in meiner Web-Api web.config-Datei hinzugefügt,
<httpProtocol>
<customHeaders>
<!-- Enable Cross Domain AJAX calls -->
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type"/>
</customHeaders>
</httpProtocol>
Und mein Ajax-Code von Kernprojekt,
$.ajax({
"url": "myApiUrl",
"type": "Get",
"data": {
//Here I'm passing a value
},
success: function (d) {
}
ich sowohl die Projekte als Startprojekt festgelegt . Kein Problem. Es ruft die Api-Methode auf und gibt die Daten zurück. Aber manchmal gibt es nichts zurück, selbst die Methode gibt Daten zurück, ich bekomme den Fehler in browser console
, den ich in meinem Fragetitel erwähnt habe. Ich überprüfte viele Antworten in SO, einschließlich this one, alle sagten, dass ich access control
in meinem response header
hinzufügen muss. Irgendjemand sagt mir, wo ich genau hinzufügen muss und was ich hinzufügen muss, damit es wie erwartet funktioniert.
Ich überprüfte auch mit Asp.net MVC-Projekt statt Core, die gleiche Sache passiert ist.
Hinweis: Ich habe CORS in meinem Web-API-Projekt nicht in meinem Web-Projekt hinzugefügt.
Ist Autorisierung in Web-API-Aktion aktiviert, dh Autorisieren Attribut? –
Nein. Im Moment stelle ich alle meine Api-Methoden ohne Authentifizierung zur Verfügung –
Ok. Könnten Sie bitte zeigen, wie Sie CORS aktiviert haben? –