Что такое CORS
Python
Middle
Без компании
Что такое CORS
Ответы
CORS (Cross-Origin Resource Sharing) — механизм, позволяющий браузеру запрашивать ресурсы с другого домена, отличного от текущего. Без CORS браузер блокирует такие запросы из-за политики Same-Origin Policy (SOP).
**Как это работает?**
Сервер должен включать специальные заголовки в ответ, например:
- `Access-Control-Allow-Origin: *` — разрешает запросы с любых доменов.
- `Access-Control-Allow-Methods: GET, POST` — разрешённые HTTP-методы.
**Пример на Flask:**
```
from flask import Flask, jsonify
from flask_cors import CORS
app = Flask(__name__)
CORS(app, resources={r"/api/*": {"origins": "*"}})
@app.route("/api/data")
def get_data():
return jsonify({"data": "Hello CORS!"})
```
**Нюансы:**
- Для сложных запросов (например, с `Content-Type: application/json`) браузер сначала отправляет `OPTIONS`-запрос (preflight).
- `*` в `Access-Control-Allow-Origin` не работает с credentials (куки, авторизация).
- CORS — это защита браузера, а не сервера. Сервер может отвечать без CORS, но браузер отклонит ответ.