Ich habe Probleme, eine GET-Anfrage an einen API-Endpunkt zu stellen. Ich weiß, dass hinter den Kulissen Sicherheit herrscht. Ich verwende React-Rails und in meinem componentDidMount
einen Ajax-Aufruf an einen API-Endpunkt. Ich gebe auch eine X-Auth-Token
in meinen Headern.Rails-CORS-Problem mit Ajax-API-Endpunkt Anforderung
Meine Konsole Fehler:
XMLHttpRequest cannot load "/api/end/point..." Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost:3000 ' is therefore not allowed access. The response had HTTP status code 401.
Mein Ajax-Aufruf suchen wie
$.ajax({ url: "my/api/endpoint...", headers: {"X-Auth-Token": "My API token..."},
success: (response) => { console.log(response); } })
Dank Ursus, fügte ich das Rack-cors Juwel und der Code beschrieben Sie wie oben und noch kein Glück. Ich habe auch meine protect_from_forgery mit:: null_session, wenn das in meinem application_controller wichtig ist. Irgendwelche Ideen, was ich sonst noch falsch machen könnte? – John
Ich habe meine Antwort für Schienen 3/4 aktualisiert. Versuchen Sie das und starten Sie Ihren Server neu. – Ursus
Ich benutze Schienen 5, und versuchte beide Möglichkeiten beim Neustart des Servers und immer noch kein Glück. Ich bekomme in der Konsole: "XMLHttpRequest kann nicht laden http: // api/end/point ... (mein API-Endpunkt) Antwort auf Preflight-Anfrage nicht übergeben Kontrolle der Zugriffskontrolle: Nein" Access-Control-Allow-Origin "Header ist auf der angeforderten Ressource vorhanden. Daher ist 'http: // localhost: 3000' für den Zugriff nicht zulässig. Die Antwort hatte den HTTP-Statuscode 401. " Vielen Dank! – John