Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Lập trình Web & Backend] Tạo phản hồi preflight OPTIONS

    Phản hồi Preflight

    Khi nhận request OPTIONS (preflight), server trả về các header cho biết method và header được phép.

    Input:

    • Dòng 1: origin của request.
    • Dòng 2: số n origin whitelist; tiếp n dòng whitelist.
    • Dòng kế: danh sách method cho phép (phân tách dấu phẩy).
    • Dòng kế: danh sách header cho phép (phân tách dấu phẩy).

    Nếu origin KHÔNG trong whitelist → in FORBIDDEN. Ngược lại in 3 dòng theo thứ tự:

    Access-Control-Allow-Origin: <origin>
    Access-Control-Allow-Methods: <methods>
    Access-Control-Allow-Headers: <headers>
    

    Danh sách method/header được chuẩn hoá: trim từng phần tử, nối bằng , (dấu phẩy + 1 space).

    Ví dụ

    Input:

    https://a.com
    1
    https://a.com
    GET,POST
    Content-Type,Authorization
    

    Output:

    Access-Control-Allow-Origin: https://a.com
    Access-Control-Allow-Methods: GET, POST
    Access-Control-Allow-Headers: Content-Type, Authorization
    
    • Định dạng đầu vào:

      origin / n + whitelist / methods / headers.

    • Ràng buộc đầu vào:

      0 ≤ n ≤ 50.

    • Định dạng đầu ra:

      FORBIDDEN hoặc 3 dòng header.

    Ví dụ:

    Đầu vào:

    https://a.com
    1
    https://a.com
    GET,POST
    Content-Type,Authorization
    

    Đầu ra:

    Access-Control-Allow-Origin: https://a.com
    Access-Control-Allow-Methods: GET, POST
    Access-Control-Allow-Headers: Content-Type, Authorization

    Giải thích:

    Origin hợp lệ nên server trả 3 header preflight; danh sách được nối bằng ", ".

    Đang tải editor...