Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Nodejs mengendalikan permintaan pilihan

Nodejs mengendalikan permintaan pilihan

WBOY
WBOYasal
2023-05-25 10:46:371110semak imbas

Apabila membuat permintaan HTTP, anda mungkin menghadapi permintaan yang dipanggil OPTIONS, iaitu permintaan prapenerbangan yang digunakan untuk menyemak sama ada pelayan membenarkan permintaan tersebut sebelum menghantar permintaan sebenar. Memandangkan permintaan jenis ini bukan permintaan biasa seperti GET atau POST, kadangkala akan terdapat beberapa masalah dalam pemprosesan sebelah pelayan. Dalam artikel ini, kami akan membincangkan cara mengendalikan permintaan OPTIONS menggunakan Node.js.

Apakah permintaan OPTIONS?

Permintaan OPTIONS ialah permintaan HTTP yang digunakan untuk menyemak sama ada permintaan merentas domain tertentu dibenarkan di bahagian pelayan. Apabila menggunakan objek XMLHttpRequest atau API Ambil untuk menghantar permintaan merentas domain, penyemak imbas akan mula-mula menghantar permintaan OPTIONS untuk menyemak sama ada pelayan menyokong permintaan tersebut. Jika tiada respons diterima daripada pelayan, penyemak imbas enggan menghantar permintaan.

Langkah dalam memproses permintaan OPTIONS

Sebelum memproses permintaan OPTIONS, fahami dahulu kaedah biasa mengendalikan permintaan merentas domain. Kaedah yang biasa digunakan ialah CORS (Cross-Origin Resource Sharing) dan JSONP (JSON with padding). Seterusnya, kami akan menggunakan CORS untuk mengendalikan permintaan OPTIONS.

CORS ialah pengepala permintaan HTTP standard yang digunakan untuk komunikasi merentas domain antara penyemak imbas dan pelayan. Dengan menetapkan pengepala CORS seperti Access-Control-Allow-Origin dan Access-Control-Allow-Methods, anda boleh membenarkan atau menyekat akses merentas domain kepada nama domain tertentu. Sekarang, mari perkenalkan cara menambah Pengepala CORS pada aplikasi Node.js kami:

  1. Pasang rangka kerja ekspres

Pertama, anda perlu memasang rangka kerja ekspres. Kita boleh memasangnya menggunakan arahan berikut:

npm install express
  1. Buat Pelayan

Seterusnya, kita perlu mencipta pelayan. Pelayan Express boleh dibuat dan mula menggunakan kod berikut:

const express = require('express');
const app = express();

app.listen(8080, () => {
    console.log(`Server is listening on port 8080`);
});
  1. Mengendalikan permintaan OPTIONS

Dalam ekspres, anda boleh menggunakan kaedah penggunaan untuk mengendalikan semua jenis laluan . Sebelum mengendalikan permintaan OPTIONS, mari kita cipta laluan asas untuk menguji sama ada pelayan berjalan dengan betul:

app.use('/', (req, res) => {
    res.send('Hello World!');
});

Sekarang, kita perlu mengendalikan permintaan OPTIONS. Berikut ialah contoh asas:

app.use('*', (req, res, next) => {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
    res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');

    // 跨域请求CORS前置验证时,会发出OPTIONS请求
    if (req.method === 'OPTIONS') {
        res.status(200).end();
    } else {
        next();
    }
});

Di sini kami menggunakan kaedah penggunaan dalam Express untuk mengendalikan semua laluan. Kami menetapkan tiga pengepala CORS: Access-Control-Allow-Origin, Access-Control-Allow-Methods dan Access-Control-Allow-Headers. Apabila memproses permintaan OPTIONS, pelayan mesti mengembalikan respons 200 OK. Permintaan HTTP lain mesti dihantar kepada pengendali laluan seterusnya menggunakan kaedah next().

Ini ialah langkah asas untuk mengendalikan permintaan OPTIONS menggunakan Node.js.

Kesimpulan

Permintaan OPTIONS ialah permintaan pra-penerbangan yang menyemak sama ada pelayan membenarkan permintaan merentas domain tertentu. Oleh kerana ia bukan salah satu permintaan biasa, ia perlu dikendalikan khas di bahagian pelayan. Dalam artikel ini, kami membincangkan cara menggunakan CORS dalam Node.js untuk mengendalikan permintaan OPTIONS. Apabila menghadapi permintaan OPTIONS, pastikan anda mengembalikan respons 200 OK untuk membenarkan penyemak imbas memproses permintaan sebenar.

Atas ialah kandungan terperinci Nodejs mengendalikan permintaan pilihan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn