如何为所有SoapUI REST Mock项目添加默认自定义请求头?
为SoapUI开源版的REST Mock服务全局添加CORS响应头
SoapUI开源版确实没有可视化的全局Mock头配置,但可以通过Groovy脚本实现批量添加CORS头,不用逐个Mock动作手动设置,步骤如下:
- 打开你的REST Mock服务编辑界面,切换到「Events」标签页
- 在「On Request」事件栏里添加Groovy脚本,粘贴以下代码:
// 全局添加CORS核心响应头 mockRequest.httpResponse.addHeader("Access-Control-Allow-Origin", "*") mockRequest.httpResponse.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS") mockRequest.httpResponse.addHeader("Access-Control-Allow-Headers", "Content-Type, Authorization") // 自动处理OPTIONS预检请求(跨域必加,否则前端预检会失败) if (mockRequest.httpMethod == "OPTIONS") { mockRequest.httpResponse.status = 200 mockRequest.httpResponse.content = "" }
- 保存脚本后,重启你的Mock服务即可生效
额外说明
- 这个脚本会对当前Mock服务下所有Mock动作生效,不用再逐个手动添加头
- 如果需要限制允许的域名(不建议用
*在生产测试环境),把*换成你的前端域名即可,比如"https://your-frontend-test.com" - 要是只想给特定路径的Mock加头,可以加路径判断,比如:
if (mockRequest.path.contains("/users")) { // 仅对/users相关的Mock动作添加CORS头 mockRequest.httpResponse.addHeader("Access-Control-Allow-Origin", "https://your-frontend-domain.com") // 其他头同理... }
内容的提问来源于stack exchange,提问作者Edson Vicente Carli Junior
相关产品推荐
相关产品推荐

