Предварительный запрос CORS
const url = 'https://example.com/wp-json/wp2tutor-bot/deepchat/v1/chat/123';const options = {method: 'OPTIONS'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request OPTIONS \ --url https://example.com/wp-json/wp2tutor-bot/deepchat/v1/chat/123Preflight браузерного виджета Deep Chat на тот же path, что POST. permission_callback true, секрет не проверяется. PHP читает channel_id из path и не валидирует пост: любой числовой id даёт 204.
Заголовки: Access-Control-Allow-Origin (Origin запроса или *), Allow-Methods: POST, OPTIONS, Allow-Headers: Content-Type, X-Wp2tutor-Bot-Secret, Max-Age: 86400; если Origin непустой — Vary: Origin. Тела нет.
Parameters
Заголовок раздела «Parameters»Path Parameters
Заголовок раздела «Path Parameters»Тот же path-параметр, что у POST: ID поста канала в URL. Обязателен, потому что маршрут /chat/(?P<channel_id>\d+). OPTIONS его не проверяет (нет 404 «канал не найден»).
Example
123Responses
Заголовок раздела «Responses»Пустой ответ preflight. CORS-заголовки как в attach_cors_headers.
Headers
Заголовок раздела «Headers»Origin запроса или *, если заголовок Origin пустой.
Example
*POST, OPTIONS.
Example
POST, OPTIONSContent-Type и X-Wp2tutor-Bot-Secret (ChannelMeta::SECRET_HEADER).
Example
Content-Type, X-Wp2tutor-Bot-Secret86400.
Example
86400