xss_callback_arg
该 `xss_callback_arg` 指令指定用于 NGINX 中 JSONP 响应的 JavaScript 回调函数的名称。
Native cross-site scripting support in NGINX
·
httpserverlocationif in location
语法xss_callback_arg ;
默认值none
上下文http, server, location, if in location
参数1
说明
xss_callback_arg 指令与 xss_get 指令结合使用,以实现用于跨站 AJAX 请求的 JSONP(JSON with Padding)功能。启用时,它通过将响应正文封装在 JavaScript 回调函数中来修改 GET 请求的响应格式。该回调函数的名称由提供给 xss_callback_arg 指令的值确定。
例如,如果设置为 callback,并且对包含参数 callback=process 的 location 发出请求,则响应正文将被格式化为 process(...);,其中 ... 代表原始响应数据。该指令便于 Web 应用中的跨域数据交换,允许不同主机上的脚本安全地相互交互。
要使用此指令,请将其放在适当的上下文(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 正常工作。