/ / XMLHttpRequest kann nicht geladen werden. Antwort für Preflight hat ungültigen HTTP-Statuscode 405 - c #, jquery, Webservices, API, Cors

XMLHttpRequest kann nicht geladen werden. Die Antwort für das Preflight hat den ungültigen HTTP-Statuscode 405 - c #, jquery, Web-Services, api, cors

Ich habe in StackOverflow viele ähnliche Probleme gelesen, aber die Lösungen funktionieren für mich nicht. Ich kann es mit Postman (Chrome-Erweiterung) verwenden. Ich übergebe Daten als "Header". Und ich bekomme 200 Rückkehrcode.

Bildbeschreibung hier eingeben

Ich muss diese Methode mit ajax Jquery aufrufen:

$.ajax(apiUri, {
beforeSend: function (xhr, settings) {
xhr.setRequestHeader("Authorization", "Bearer " + $("#AccessToken").val());
},
dataType: "text",
cache: false,
success: function (data) {
console.log(data);
$("#output").text(data);
}
});

Aber in diesem Fall habe ich einen Fehler erhalten.

Mögen Konsolenfehler bei Verwendung von Jquery / Ajax

Bei Resource Server habe ich in web.config gesetzt.

<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>

Antworten:

14 für die Antwort № 1

Ich habe mich gerade in eine globale Umgebung gestellt

    protected void Application_BeginRequest()
{
if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
{
Response.Flush();
}
}

und hat einige Änderungen an den Einstellungen von web.config (system.webserver) vorgenommen

<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept,Authorization" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>

dann funktioniert gut :)

Vielen Dank