Rumah >hujung hadapan web >tutorial js >Mengapa Node.js Membuang 'Ralat: dengar EADDRINUSE' Apabila Menggunakan XMLHttpRequest?
Mengatasi Ralat: dengar EADDRINUSE dalam Node.js
Isu "Ralat: dengar EADDRINUSE" timbul apabila Node.js menghadapi percubaan untuk dengar di pelabuhan yang sudah diduduki. Node.js ialah persekitaran masa jalan untuk melaksanakan aplikasi JavaScript.
Dalam senario yang disediakan, pelayan sedang mendengar pada port 80 sambil pada masa yang sama cuba menggunakan XMLHttpRequest untuk permintaan. Penyemak imbas boleh mengendalikan sambungan serentak, tetapi pelayan Node.js menghadapi masalah kerana ketiadaan port.
Kod pelayan, seperti yang dinyatakan:
net.createServer(function (socket) { socket.name = socket.remoteAddress + ":" + socket.remotePort; console.log('connection request from: ' + socket.remoteAddress); socket.destroy(); }).listen(options.port);
Pelayan pada asasnya mendengar untuk masuk sambungan tetapi segera memusnahkannya. Ini menghalang sebarang permintaan sebenar daripada diproses.
Kod permintaan, seperti yang disediakan:
var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { sys.puts("State: " + this.readyState); if (this.readyState == 4) { sys.puts("Complete.\nBody length: " + this.responseText.length); sys.puts("Body:\n" + this.responseText); } }; xhr.open("GET", "http://mywebsite.com"); xhr.send();
Permintaan cuba membuat permintaan HTTP GET ke tapak web jauh sementara Node.js pelayan berjalan pada port 80.
Untuk menyelesaikan "Ralat: dengar EADDRINUSE", pelayan harus sama ada:
Atas ialah kandungan terperinci Mengapa Node.js Membuang 'Ralat: dengar EADDRINUSE' Apabila Menggunakan XMLHttpRequest?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!