Testen CORS mit dem Briefträger tool/ cURL/ in der Chrome console
Ich Teste CORS mit dem Briefträger tool und ich bekommen ständig
access-control-allow-origin → null
für GET
oder OPTIONS
Anforderungen an
http://localhost:4000/api/accounts?Host=http://localhost:4200/&X-Origin=http://jquery.com
Auch mit Origin
statt X-Origin
ändert nicht das Ergebnis.
Mittlerweile, wenn ich mit cURL wie diese
curl -H "Origin: http://jquery.com" --verbose http://localhost:4000/api/accounts
Mache ich Zugriff auf die API
< access-control-allow-origin: http://jquery.com
Habe ich auch geöffnet, die jQuery-website mit http
und die chrome-Javascript-Konsole, um diesen code ausführen:
$.get("http://localhost:4000/api/accounts").then(function(val){console.log(val);})
Und es gedruckt wird das JSON-Objekt zurückgegeben, der von der API.
Nun meine Fragen sind wie folgt:
- Wie kann ich richtig testen CORS mit Postboten? Ich habe bemerkt, dass, wenn die Ursprungs-URLs zulassen option auf dem server zu
*
Postboten zurückaccess-control-allow-origin → *
Das oben erwähnte problem wird nur angezeigt, wenn ich explizit erlauben ein einstellen des Ursprungs wie:
`origin: ["https://www.getpostman.com/", "http://localhost:4200/", "http://jquery.com"]`
- Ich bemerkt, dass die
http://jquery.com/
statthttp://jquery.com
wird nicht zulassen, dass Anfragen von denen die Herkunft istOrigin=http://jquery.com
? - Ich habe bemerkt, dass cURL liefert den Inhalt der Ressource (in diesem Fall JSON-Daten), auch wenn die Anfrage kommt von nicht autorisierten Herkunft. Ist das normal, oder bedeutet es, dass ich vergessen habe zu konfigurieren, die etwas auf dem server stellt diese Daten?
InformationsquelleAutor user3790827 | 2016-06-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
Origin
header vom client gesendet wird, ist das Schema, domain und port (sofern nicht 80), von dem die Anfrage stammt. Der nachfolgende/
ist nicht gültig in der Kopfzeile. Sie können nicht senden mehrere Ursprünge. DieAccess-Control-Allow-Origin
gesendet, vom server kann entweder*
gestatten, den Ursprung, oder senden Sie zurück, die gleiche Herkunft aus dem request-header.Zum Beispiel, wenn Sie machen eine Anfrage an
http://www.telerik.com/
im Chrome, wird die Anfrage-header enthältOrigin:http://www.telerik.com
(der browser automatisch sendet), und die header der Antwort vom server enthältAccess-Control-Allow-Origin:http://www.telerik.com
.Als für Ihre Letzte Frage, die nach der Spezifikation, der user-agent ist verantwortlich für die Durchsetzung CORS, so vermute ich cURL nicht bestätigen, dass die Anfrage-und Antwort-Spiel.
Quelle: https://www.w3.org/TR/cors/
InformationsquelleAutor Gideon Pyzer
Können Sie versuchen,
curl -X-OPTIONEN 'https://domain/path/file.png' -H "Herkunft: https://yoursitedomain" -H "Access-Control-Request-Methode: GET" -v -o /dev/null
InformationsquelleAutor David Kochkerian