CORS

CORS (Cross-Origin Resource Sharing) là một tính năng trên trình duyệt cho phép một tài nguyên được truy cập từ một trang web này (được gọi là "nguồn gốc") được truy cập từ một trang web khác (được gọi là "nguồn khác").


Hình: https://www.stackhawk.com/blog/vue-cors-guide-what-it-is-and-how-to-enable-it/


Ví dụ, nếu trang web A gửi một yêu cầu HTTP tới trang web B, CORS sẽ cho phép trang web B trả lại dữ liệu cho trang web A, nếu trang web A có được phép truy cập vào dữ liệu của trang web B.


CORS là một cách để giới hạn khả năng truy cập tài nguyên của một trang web từ một trang web khác, để ngăn chặn các cuộc tấn công từ các trang web không đáng tin cậy. Nó được sử dụng rộng rãi trên các trang web hiện đại để bảo vệ dữ liệu người dùng và hệ thống.


Để sửa lỗi CORS trong Node.js, mình có thể sử dụng một trong những cách sau:

1: Sử dụng cơ chế middleware CORS: Bạn có thể sử dụng một middleware CORS như là cors hoặc express-cors để xử lý CORS trong Node.js. Đây là cách đơn giản nhất để sửa lỗi CORS.

Ví dụ:

const express = require('express')
const cors = require('cors')


const app = express()
app.use(cors())


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


app.listen(3000, () => {
  console.log('Server is running on port 3000')
})


2: Sử dụng thuộc tính Access-Control-Allow-Origin: Bạn có thể sử dụng thuộc tính Access-Control-Allow-Origin trong phản hồi HTTP để cho phép một trang web khác truy cập vào tài nguyên của bạn.

Ví dụ:

app.get('/', (req, res) => {
  res.setHeader('Access-Control-Allow-Origin', '*')
  res.send('Hello World!')
})


Lưu ý: Cách này chỉ cho phép tất cả các trang web truy cập vào tài nguyên của bạn. Nếu bạn muốn cho phép chỉ một số trang web cụ thể truy cập, bạn có thể thay thế * bằng URL của trang web đó.