Расширение предназначено для простого входа в систему, поэтому оно отправляет данные из входа в систему на сервер с помощью node.js / express. Я думаю, что проблема заключается в том, что я предполагаю, что всплывающее окно работает как HTML-страница и некоторые разрешения для Chrome, такие как «CORS». Вот часть кода:
Манифест:
{
"name": "CTRL",
"manifest_version": 2,
"version": "1.0",
"description": "Aplicacion para el control de contenido en google Chrome",
"icons": {
"16": "imagenes/Logo.png",
"48": "imagenes/Logo.png",
"128": "imagenes/Logo.png"
},
"browser_action": {
"default_icon":"imagenes/Logo.png",
"default title": "CTRL",
"default_popup": "archivo/popup.html"
},
"background": {
"scripts": ["background.js"],
"persistent": false
},
"permissions": ["tabs","documents"]
}
Popup.html:
User: <input type="text" id="User" placeholder="User"><br>
Password: <input type="text" placeholder="Password" id="Password" ><br>
<button type="submit" id='boton'>ENVIAR</button>
<script src="popup.js"></script>
Сервер:
let express = require('express');
let path = require("path");
let app = express();
app.use(express.json());
app.use(express.static(path.join(__dirname, '/archivo')));
app.post('/CTRL', function(req, res) {
let usuario = req.body;
console.log('Nombre: ' + usuario.name + ' password: ' + usuario.passw);
res.send('Nombre: ' + usuario.name + ' password: ' + usuario.passw);
});
app.listen('8000', function() {
console.log('server corriendo puerto 8000');
})
Клиент:
let nombre = document.getElementById('User');
let contrasena = document.getElementById('Password');
let boton = document.getElementById('boton');
boton.addEventListener('click', sendData);
function sendData(){
let nombreSTR = nombre.value
let contrasenaSTR = contrasena.value
let usuario = {
name: nombreSTR,
passw: contrasenaSTR
}
fetch('http://localhost:8000/CTRL', {
method: 'POST',
body: JSON.stringify(usuario),
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
}
});
}