xss_callback_arg
Директива `xss_callback_arg` указывает имя JavaScript-функции обратного вызова для JSONP-ответов в NGINX.
Описание
Директива 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 работает корректно.