2016-06-13 10 views
1

Ich versuche, eine HTTP-Anfrage in Javascript mit XMLHttpRequest zu senden und so verwende ich folgenden Code in einer HTML-Datei. Ich habe Server läuft, der ein Wörterbuch der Form zurückgibt {'test': 'string'}.Cross-Origin-Anfrage blockiert: in Javascript mit XMLHttpRequest

 <script type="text/javascript"> 
     var xhr = new XMLHttpRequest(); 
     xhr.open("GET", "http://localhost:5000/test", true); 
     xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); 
     xhr.send(); 

     xhr.onreadystatechange = processRequest; 
     console.log(xhr.status) 

     function processRequest(e) 
     { 
      if (xhr.readyState == 4) 
      { 
       alert(xhr.responseText); 
      } 
     } 
     </script> 

jedoch trotz der Zugabe des Kopfes I Cross-Origin anfordern bin immer Blockiert: Fehler in meiner Konsole, wenn ich versuche, xhr.status in der Konsole drucken es 0 als Reaktion zeigt. Ich benutze Kolben-Server, die einen schlechten Nachrichtenfehler bei der Verwendung von https zeigt, also verwende ich HTTP-Anfrage.

+0

Ist die Seite, auf der dieses Skript ausgeführt wird, auch auf 'http: // localhost: 5000/'gehostet? –

+0

Nein, es ist eine separate HTML-Datei, über die ich eine HTTP-Anfrage senden möchte. – user40647

+0

Das ist das Problem, lesen Sie, warum es blockiert ist, vielleicht [hier] (https://en.wikipedia.org/wiki/Cross-origin_resource_sharing). Sie können den Header "Access-Control-Allow-Origin" nicht auf der Clientseite festlegen. Dies muss auf dem Server eingerichtet werden, d. H. Der Server sollte Ihnen erlauben, sich mit anderen Domänen zu verbinden. –

Antwort

1

Sie können CORS nicht vom Frontend aus steuern. Sie müssen das CORS-Modul auf Ihren Back-End-Server stellen.

Überprüfen Sie den Link flask cors.

Verwandte Themen