GET XMLHttpRequest 401 "Authentication failed"

di il
3 risposte

GET XMLHttpRequest 401 "Authentication failed"

Buongiorno, sto cercando di fare una GET utilizzando XMLHttpRequest ma restituisce "401 Authentication failed"
Lo script (script.js) contiene:

function getTest() {
    var host ="localhost" 
    var port = "8080";
    var TOKEN = "XXXXXXX" //token richiesto per l'autenticazione
    var client = new XMLHttpRequest();
    client.open("GET", "http://" + host + ":" + port + "/api/richiesta", true);
    client.setRequestHeader("Content-Type", "application/json");
    client.setRequestHeader("X-Authorization", "Bearer " + TOKEN);
    client.send(null);
}    
La funzione viene richiamata in un file html:

...
<script src="script.js"></script>
<body onload="getTest()">
...
Una volta che apro il file html col browser (Chrome) la console restituisce: "Failed to load http://localhost:8080/api/richiest: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 401.

Mentre su Mozilla Firefox ottengo "Bloccata richiesta multiorigine (cross-origin): il criterio di corrispondenza dell’origine non consente la lettura della risorsa remota da http://localhost:8080/api/richiest. Motivo: header CORS “Access-Control-Allow-Origin” mancante.

Lanciando il comando nella shell con "curl ..." ricevo correttamente ciò che chiedo. Ho provato anche Postman per testare la GET, aggiungendo i due header sopra, e nessun problema.

Grazie per l'aiuto

3 Risposte

  • Re: GET XMLHttpRequest 401 "Authentication failed"

    Buongiorno, aggiornamento:
    ho "aggirato" il problema momentaneamente per poter fare almeno dei test. Aprendo Chrome su Windows col seguente comando "chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security" per superare il problema legato a "Access-Control-Allow-Origin". Per il momento non sono riuscito a fare di più. Spero qualcuno riesca a darmi qualche dritta. Grazie
  • Re: GET XMLHttpRequest 401 "Authentication failed"

    Direi che andrebbe abilitato il supporto CORS del web server.

    Negli header delle risposte http dovrebbe esserci:

    Access-Control-Allow-Origin: *
  • Re: GET XMLHttpRequest 401 "Authentication failed"

    Ciao Toth grazie per la risposta, si ho dato uno sguardo al discorso CORS, non mi sembra una cosa banale, almeno per me, e per il momento ho tralasciato. Per quanto riguarda "Access-Control-Allow-Origin: *" è vero ma la cosa strana è che nella configurazione dovrebbe essere già impostato con "*". Vedrò lunedì di rimetterci mano, al massimo per adesso continuo a testare nel modo descritto nel mio messaggio precedente.
    Grazie
Devi accedere o registrarti per scrivere nel forum
3 risposte