Rumah >hujung hadapan web >tutorial js >Memahami CORS: Perkongsian Sumber Silang Asal Selamat dalam JavaScript
CORS (Cross-Origin Resource Sharing) ialah ciri keselamatan yang dilaksanakan oleh penyemak imbas web untuk mengawal cara sumber boleh diminta daripada domain (asal) yang berbeza daripada domain yang sumber itu berasal. Ia adalah penting dalam pembangunan web moden, terutamanya apabila bekerja dengan API, kerana ia menghalang akses tanpa kebenaran kepada sumber dan memastikan pertukaran data yang selamat.
asal usul ditakrifkan oleh gabungan:
Contoh:
Dasar Asal Sama ialah langkah keselamatan yang menyekat cara sumber pada halaman web boleh berinteraksi dengan sumber dari asal lain.
Walaupun SOP memastikan keselamatan, ia mengehadkan permintaan silang asal yang sah, iaitu tempat CORS masuk.
CORS ialah mekanisme yang membolehkan pelayan menentukan siapa yang boleh mengakses sumber mereka dengan memasukkan pengepala HTTP tertentu dalam respons mereka. Pengepala ini menunjukkan sama ada penyemak imbas harus membenarkan klien mengakses sumber yang diminta.
Apabila penyemak imbas membuat permintaan silang asal, ia menyemak pengepala respons pelayan untuk menentukan sama ada permintaan itu dibenarkan.
Langkah Utama:
Permintaan Pra Penerbangan (Pilihan):
Untuk jenis permintaan tertentu, penyemak imbas menghantar permintaan OPTIONS awal untuk menyemak sama ada permintaan sebenar dibenarkan.
Respons Pelayan:
Pelayan menyertakan pengepala CORS yang sesuai dalam respons.
Keputusan Pelayar:
Jika pengepala sepadan dengan jangkaan penyemak imbas, sumber akan dikongsi; jika tidak, penyemak imbas menyekat permintaan itu.
Access-Control-Allow-Origin: Menentukan asal yang dibenarkan untuk mengakses sumber.
Contoh: Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Methods: Menentukan kaedah HTTP yang dibenarkan.
Contoh: Access-Control-Allow-Methods: GET, POST, PUT
Access-Control-Allow-Headers: Menentukan pengepala tersuai yang boleh dihantar dalam permintaan.
Contoh: Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Credentials: Menunjukkan sama ada bukti kelayakan (kuki, pengesahan HTTP) boleh dihantar.
Contoh: Access-Control-Allow-Credentials: benar
Permintaan Mudah:
Permintaan Ditetapkan:
Permintaan Diwibawa:
fetch("https://api.otherdomain.com/data", { method: "GET", headers: { "Content-Type": "application/json", }, credentials: "include", // For sending cookies or credentials }) .then(response => response.json()) .then(data => console.log("Data:", data)) .catch(error => console.error("Error:", error));
Access-Control-Allow-Origin: https://example.com Access-Control-Allow-Methods: GET, POST Access-Control-Allow-Headers: Content-Type, Authorization Access-Control-Allow-Credentials: true
const express = require("express"); const cors = require("cors"); const app = express(); // Use the CORS middleware app.use(cors({ origin: "https://example.com", // Allow only this origin methods: ["GET", "POST"], // Allow these HTTP methods credentials: true, // Allow credentials })); app.get("/data", (req, res) => { res.json({ message: "CORS request successful" }); }); app.listen(3000, () => console.log("Server running on port 3000"));
Ralat: Tiada pengepala 'Access-Control-Allow-Origin' pada sumber yang diminta.
Ralat: Permintaan yang disahkan memerlukan 'Kawalan-Kawalan-Benarkan-Kelayakan' adalah benar.
Permintaan Pra Penerbangan Gagal:
CORS ialah ciri penting untuk perkongsian sumber merentas asal yang selamat dan berfungsi dalam aplikasi web. Dengan memahami dan mengkonfigurasi pengepala CORS dengan betul pada pelayan anda, anda boleh memastikan komunikasi lancar dan selamat antara domain sambil mematuhi piawaian keselamatan web.
Hai, saya Abhay Singh Kathayat!
Saya seorang pembangun tindanan penuh dengan kepakaran dalam kedua-dua teknologi hadapan dan belakang. Saya bekerja dengan pelbagai bahasa pengaturcaraan dan rangka kerja untuk membina aplikasi yang cekap, berskala dan mesra pengguna.
Jangan ragu untuk menghubungi saya melalui e-mel perniagaan saya: kaashshorts28@gmail.com.
Atas ialah kandungan terperinci Memahami CORS: Perkongsian Sumber Silang Asal Selamat dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!