API:Cross-site requests/ru

Если пользовательскому скрипту или гаджету нужно сделать вызов API другого сайта на движке MediaWiki (например, скрипту на русской Википедии нужно проверить информацию изображения на Викискладе), необходимо использовать JSONP или CORS.

Использование JSONP
API  принимает параметр «callback», который указывает название функции JavaScript, в которую будет обёрнут результат JSON. Это может быть использовано, чтобы вызвать API на другом сайте, динамически добавляя теги к документу.

Обратите внимание, что все запросы JSONP будут обработаны, как если бы вход в учётную запись произведён не был, даже если браузер аутентифицирован на другой вики.

Использование CORS
API MediaWiki также требует, чтобы исходный сайт был указан как параметр запроса с названием «origin», который проверяется на соответствие с требуемым протоколом CORS заголовком Origin. Обратите внимание, что этот заголовок должен быть включён в любой pre-flight запрос, и таким образом должен быть включён в часть строки запроса запрашиваемого URI даже для POST запросов.

Чтобы другая вики разрешала CORS-запросы,  должен быть установлен соответствующе, чтобы разрешить исходный сайт. Если проверка источника CORS проходит, MediaWiki включит заголовок  в ответ, чтобы куки аутентификации могли быть посланы.

Unauthenticated CORS requests may be made from any origin by setting the "origin" request parameter to "*". In this case MediaWiki will include the  header in the response and will process the request as if logged out (in case credentials are somehow sent anyway).

When the "origin" request parameter is supplied, MediaWiki (since 1.30) will return a  header with a brief failure reason if the request does not result in a successful CORS response, e.g. in case of mismatched origin or unsupported headers in a   request header.

См. Manual: CORS для инструкций о том, как обрабатывать CORS-запросы через JavaScript.