Entonces mi problema es:
Cada vez que trato de hacer un XMLHttpRequest a mi servidor HTTP desde mi página web (misma máquina, puerto diferente), me bloquean con este error:
Access to XMLHttpRequest at 'localhost:8081' from origin 'http://localhost:8080' has been blocked by CORS policy: Cross-origin requests are only supported for protocol schemes: HTTP, data, chrome, chrome-extension, brave, chrome-untrusted, HTTPS.¿Por qué pasó esto?
Ejemplo de cliente (navegador):
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { // Use data... }; xhttp.open("GET", "localhost:8081", true); xhttp.send();Servidor de muestra (NodeJS, biblioteca HTTP):
const server = http.createServer((req, res) => { if(req.url != '/') return res.end('404'); res.writeHead(200, { 'Content-Type': 'text/html' }) const json = { // Data... } res.write(JSON.stringify(json)) res.end() }); server.listen(8081)Resuelto, gracias a Quentin en los comentarios :D
La respuesta está aquí .
Es un problema con la privacidad de su navegador y hay dos formas de solucionarlo:
La respuesta completa está en el enlace de arriba.