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