xss_callback_arg

Директива `xss_callback_arg` указывает имя JavaScript-функции обратного вызова для JSONP-ответов в NGINX.

Синтаксисxss_callback_arg ;
По умолчаниюnone
Контекстhttp, server, location, if in location
Аргументы1

Описание

Директива xss_callback_arg используется совместно с директивой xss_get для реализации функциональности JSONP (JSON with Padding) для кросс-сайтовых AJAX-запросов. При включении она изменяет формат ответа для GET-запросов, оборачивая тело ответа в JavaScript-функцию обратного вызова. Имя этой функции определяется значением, заданным директивой xss_callback_arg.

Например, если значение установлено в callback, и к location выполняется запрос с параметром callback=process, тело ответа будет отформатировано как process(...);, где ... представляет исходные данные ответа. Эта директива облегчает обмен данными между доменами в веб-приложениях, позволяя скриптам на разных хостах безопасно взаимодействовать друг с другом.

Чтобы использовать эту директиву, поместите её в соответствующий контекст (http, server, location, or if in location) и укажите желаемое имя параметра обратного вызова. Если не задано, директива по умолчанию принимает значение none, что означает применение стандартного поведения без ожидаемого JSONP-формата, что может привести к проблемам совместимости с ожиданиями клиентской стороны при кросс-доменных запросах.

Пример конфига

server {
    location /foo {
        xss_get on;
        xss_callback_arg 'callback';
        xss_input_types 'application/json';
        xss_output_type 'application/x-javascript';
    }
}

Убедитесь, что xss_get включён, чтобы JSONP работал, так как без него callback не будет выполнен.

Использование специальных символов в имени callback может привести к непредвиденным результатам; лучше использовать только буквенно-цифровые символы.

Всегда тестируйте ответы вашего приложения в нескольких браузерах, чтобы подтвердить, что JSONP работает корректно.

← Ко всем директивам