Postanforderung in Google Chrome schlägt in der Preflight -Phase fehlJavaScript

Javascript-Forum
Guest
 Postanforderung in Google Chrome schlägt in der Preflight -Phase fehl

Post by Guest »

Ich versuche mit JavaScript eine Post an meinen ASP.NET -Kernendpunkt zu stellen. Meine Anfrage ist wie folgt strukturiert: < /p>

Code: Select all

fetch("https://localhost:44500/api/test", {
method: 'POST',
headers: {
"Authorization": `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
param1: 'first sample value',
param2: 'second sample value'
})
}).then(response => {
if (!response.ok) {
throw new Error(`Request failed with status ${response.status}`);
}

return response.json();
}).then(result => {
console.log('Request succeeded!');
}).catch(error => {
console.error('Failed to send the request.', error);
});
< /code>
Auf der Serverseite habe ich die folgende Route registriert: < /p>
app.MapPost("api/test", HandleAsync)
.DisableAntiforgery()
.RequireCors("AllowAll")
.RequireAuthorization(new AuthorizeAttribute { AuthenticationSchemes = "Api" });
< /code>
Zusätzlich lautet meine CORS-Konfiguration wie folgt: < /p>
services.AddCors(options =>
{
options.AddPolicy("AllowAll", builder =>
{
builder
.AllowAnyMethod()
.AllowAnyOrigin()
.AllowAnyHeader();
});
});
Beim Testen meines Server -Setups kann ich mit Postman erfolgreich eine Post -Anforderung erstellen. Firefox , aber wenn ich versuche, denselben Code in Google Chrome auszuführen, schlägt es fehl. Wenn Sie die Registerkarte "" in Chromes DevTools inspizieren bestätigt, dass die in der JavaScript -Anforderung verwendete URL mit dem in Postman identisch ist (was der Fall sein sollte, da die Anforderung in Firefox funktioniert). wie folgt: < /p>

Code: Select all

app.MapMethods("api/test", ["OPTIONS", "POST"], HandleAsync)
.DisableAntiforgery()
.RequireCors("AllowAll")
.RequireAuthorization(new AuthorizeAttribute { AuthenticationSchemes = "Api" });
Mit dieser Änderung kann ich jetzt erfolgreich eine Optionen mit dem Postboten erstellen. Das Problem in Chrom bleibt jedoch bestehen. p> Zugriff auf Fetch unter 'https: // localhost: 44500/api/test' from Origin 'https://www.example.com' wurde durch CORS -Richtlinien blockiert: Antwort auf die Vorfluganforderung keine Überprüfung der Zugriffskontrolle übergibt : Kein "Access-Control-Allow-Origin-Header" ist in der angeforderten Ressource vorhanden. Wenn eine undurchlässige Antwort Ihren Anforderungen dient, setzen Sie den Modus der Anforderung auf "No-Cors", um die Ressource mit deaktivierten CORs abzurufen. Problem und wie kann ich es lösen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post