Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >nodejs menyiarkan kod kacau Cina
Node.js ialah enjin JavaScript sebelah pelayan yang popular yang digunakan secara meluas dalam pembangunan web. Walau bagaimanapun, apabila memproses permintaan POST, aksara Cina sering kelihatan bercelaru, yang mungkin menyebabkan beberapa masalah.
Sebab masalahnya ialah dalam protokol HTTP, bahagian entiti data permintaan POST dikodkan melalui kaedah pengekodan yang ditentukan oleh pengepala Jenis Kandungan. Jika pelanggan yang menghantar permintaan dan pelayan yang menerima permintaan menggunakan kaedah pengekodan yang berbeza, aksara Cina akan menjadi kacau.
Jadi, kunci untuk menyelesaikan masalah ini ialah memastikan pengekodan yang sama digunakan semasa meminta data dan menerima data. Berikut ialah beberapa penyelesaian:
Apabila menghantar permintaan POST, anda boleh menentukan kaedah pengekodan data permintaan dengan menetapkan Jenis Kandungan pengepala. Jika permintaan mengandungi aksara Cina, anda boleh menetapkan pengepala Content-Type kepada application/x-www-form-urlencoded;charset=utf-8, iaitu, gunakan pengekodan UTF-8 untuk mengekod:
const data = new URLSearchParams(); data.append('username', '张三'); data.append('password', '123456'); fetch('/login', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8' }, body: data });
Apabila menerima permintaan POST, anda boleh menentukan kaedah pengekodan data respons dengan menetapkan pengepala Jenis Kandungan. Begitu juga, jika respons mengandungi aksara Cina, anda boleh menetapkan pengepala Content-Type kepada text/html;charset=utf-8, iaitu, gunakan pengekodan UTF-8 untuk mengekod:
app.post('/login', (req, res) => { res.setHeader('Content-Type', 'text/html;charset=utf-8'); res.send('<p>登录成功</p>'); });
Anda boleh menggunakan middleware untuk mengendalikan isu pengekodan permintaan POST. Perisian tengah parser badan ialah penyelesaian biasa yang mengendalikan pengekodan data permintaan secara automatik, memastikan pengekodan yang sama digunakan semasa menerima dan menghantar data dalam permintaan:
const express = require('express'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.post('/login', (req, res) => { const { username, password } = req.body; console.log(username, password); res.send('<p>登录成功</p>'); });
Dalam contoh ini, badan - Perisian tengah parser ditambahkan pada aplikasi dan digunakan untuk mengendalikan pengekodan permintaan POST.
Secara amnya, untuk menangani masalah bercelaru bahasa Cina dalam permintaan POST, anda perlu memastikan bahawa pengekodan permintaan dan respons adalah konsisten, dan menggunakan perisian tengah dengan betul untuk menangani masalah pengekodan. Penyelesaian ini boleh memastikan bahawa aplikasi tidak mempunyai masalah bercelaru bahasa Cina semasa memproses permintaan POST, dengan itu mengendalikan komunikasi antara pengguna dan pelayan dengan lebih baik.
Atas ialah kandungan terperinci nodejs menyiarkan kod kacau Cina. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!