1

Ich benutze FineUploader, um Dateien in S3 hochzuladen. Während die DELETE-Funktionalität nutzen bekomme ich folgende Fehlermeldung:Warum lehnt meine Serverless-Lambda-Funktion den Cache-Control-Header ab?

XMLHttpRequest cannot load https://xxxxxxx.execute-api.us-east-1.amazonaws.com/prod/deleteS3File ?. Request header field Cache-Control is not allowed by Access-Control-Allow-Headers in preflight response.

Die Lambda-Funktion wurde mit der folgenden Konfiguration mit der ehrfürchtigen Serverless-Framework erstellt:

functions: 
    deleteS3File: 
    handler: handler.deleteS3File 
    events: 
     - http: 
      path: deleteS3File 
      method: POST 
      integration: lambda 
      cors: true 
      response: 
      headers: 
       Access-Control-Allow-Origin: "*" 

Jede Idee, was dieser Fehler für eine Lambda-Funktion bedeutet, und wie man es anpackt?

Antwort

2

Die POST verb preflights an OPTIONS verb, die Sie nicht unterstützen.

Sie müssen also eine Methode für OPTIONS erstellen, die Statuscode 200 (Erfolg) und mit den erwarteten Headern zurückgibt.

Für beide Optionen und POST, versuchen Sie die folgenden Überschriften:

Access-Control-Allow-Origin: "*" 
Access-Control-Allow-Methods: "GET, HEAD, OPTIONS, POST, PUT, DELETE" 
Access-Control-Allow-Headers: "Access-Control-Allow-Headers, Cache-Control, Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers" 

Sie eine Feinabstimmung kann später die Header nur zu erlauben, was Sie brauchen

+1

nur die Antwort zu verfeinern - Ich habe ein serverlose OPTIONS-Funktion, die lediglich die angegebenen access-control-allow-headers zurückgibt. – Tal

Verwandte Themen