GET XMLHttpRequest 401 "Authentication failed"

Discussioni su Javascript, JQuery e Ajax per la programmazione lato client.

Moderatore: Toki

Regole del forum
Leggi: IProgrammatori.it - Regolamento Forum
Paolinos
Utente Junior
Messaggi: 46
Iscritto il: 20 ago 2015, 15:55

GET XMLHttpRequest 401 "Authentication failed"

Messaggioda Paolinos » 12 feb 2018, 11:54

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

Codice: Seleziona tutto

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:

Codice: Seleziona tutto

...
<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/richiesta: 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/richiesta. 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
Paolinos
Utente Junior
Messaggi: 46
Iscritto il: 20 ago 2015, 15:55

Re: GET XMLHttpRequest 401 "Authentication failed"

Messaggioda Paolinos » 13 feb 2018, 12:25

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
Avatar utente
toth
New Entry
Messaggi: 7
Iscritto il: 23 set 2017, 08:19

Re: GET XMLHttpRequest 401 "Authentication failed"

Messaggioda toth » 15 feb 2018, 22:33

Direi che andrebbe abilitato il supporto CORS del web server.

Negli header delle risposte http dovrebbe esserci:

Access-Control-Allow-Origin: *
Paolinos
Utente Junior
Messaggi: 46
Iscritto il: 20 ago 2015, 15:55

Re: GET XMLHttpRequest 401 "Authentication failed"

Messaggioda Paolinos » 17 feb 2018, 15:24

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

Torna a “Javascript, JQuery, Ajax”

Chi c’è in linea

Visitano il forum: Nessuno e 14 ospiti