2016-03-23 18 views
3

Ich versuche, mein Back-End zu hacken, die eine REST-API verfügbar macht. Das Schlimmste, was meiner Datenbank gemäß der firstox CORS-Richtlinie passieren kann, ist, dass ich ein neues Objekt mit POST-Anfrage erstellen kann, da es kein Preflight benötigt. Dies ist der einfache Code (ich bin es über jsfiddle laufen, aber es sollte nichts bedeuten)Einfache CORS funktioniert nicht (obwohl es sollte)

var xhttp = new XMLHttpRequest(); 
xhttp.open("POST", "http://127.0.0.1:8000/api/v1/company", true); 
xhttp.withCredentials = true; 
xhttp.setRequestHeader('Content-Type', 'text/plain'); 
xhttp.send('{description:"This company was added by pure hacking"}'); 

Aber ich bin immer einen Fehler in der Konsole:

Blocked loading mixed active content "http://127.0.0.1:8000/api/v1/company" 
+0

jsFiddle SSL verwendet, was bedeutet, es wird nicht Inhalt laden, die nicht 'https: //'. Wenn Sie sich mit localhost verbinden, sollten Sie stattdessen einen lokalen Webserver verwenden. – adeneo

+0

Ein besserer Test wäre es, eine Curl-Anfrage zu verwenden. curl -H "Content-Type: application/json" -X POST -d '{Beschreibung: "Diese Firma wurde von pure hacking hinzugefügt"}' http://127.0.0.1:8000/api/v1/company Auch testen gegen Ihr lokaler Host und nicht externe Verkleidung wird nicht sehr nützlich sein ... –

+0

Aber 'curl' kann die Cookies im Browser nicht übertragen. Alles dreht sich um die Cookies des Benutzers (csrf) – Adam

Antwort

0

Der Fehler ist nicht wegen SOP, es ist ein Mixed-Content-Fehler, der eine http-Anfrage auf einer https-Seite macht.
jsfiddle standardmäßig auf https aber erlaubt http, aber nur auf gespeicherten fiddles.

Ändern Sie die URL Ihrer Geige http zu verwenden statt https

+0

Ok, jetzt funktioniert es (außer ich werde auf meiner Seite nicht autorisiert und ich muss untersuchen, warum) – Adam

Verwandte Themen