我正在开发一个网站,管理员可以通过dashboard.php拉一个新的.JPG到他的网站localhost:8000/index.php。要做到这一点,我使用server.JS与Node.JS:
const app = express();
const corsOptions = {
origin: 'http://localhost:8000', // Remplacez par le domaine de votre application cliente
methods: ['GET', 'POST'],
credentials: true, // Autoriser les cookies et les en-têtes d'autorisation
};
app.use(cors(corsOptions));
const server = http.createServer(app);
const io = socketIO(server);
// Serveur WebSocket
io.on('connection', (socket) => {
console.log('Un client s\'est connecté');
// Écoute les changements dans le dossier "Images"
fs.watch('Images', { recursive: true }, (eventType, filename) => {
if (eventType === 'change' || eventType === 'rename') {
// Émet un événement 'imageUpdated' aux clients connectés
io.emit('imageUpdated', { filename });
}
});
// Gérer la déconnexion du client
socket.on('disconnect', () => {
console.log('Un client s\'est déconnecté');
});
});
// Serveur HTTP pour l'application web
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
console.log(`Serveur HTTP démarré sur le port ${PORT}`);
});
字符串
我在index.php中介绍了一个脚本,该脚本将WS连接在一起,以自动重新加载页面,即使客户端在管理员拉新图片的同时连接到网站上。
// Connexion WebSocket côté client pour les utilisateurs
const socket = io('http://localhost:3000'); // Mettez à jour l'URL du serveur WebSocket
// Écoute des événements 'imageUpdated'
socket.on('connect', (e) => {
console.log('connecté' + e);
});
socket.on('imageUpdated', (data) => {
console.log('Image mise à jour:', data.filename);
// Commentez ou supprimez la ligne suivante pour éviter le rechargement automatique
// location.reload();
});
型
在开发控制台我得到这些错误对.它来每2-3秒,并说这Access to XMLHttpRequest at 'http://localhost:3000/socket.io/?EIO=4&transport=polling&t=OpMMY25' from origin 'http://localhost:8000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
GET http://localhost:3000/socket.io/?EIO=4&transport=polling&t=OpMMncX net::ERR_FAILED 200 (OK)
感谢大家阅读本文
尝试使CORS选项。尝试检查WS是否连接,但没有
1条答案
按热度按时间u7up0aaq1#
感谢@devhubmarius,他找到了解决方案:
问题是,cors在需要的地方作为中间件,比如:
字符串
头响应:https://imgur.com/a/XuubnTc
所以它工作得很好,谢谢!