You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Domino配置PUT/PATCH/DELETE方法触发405错误该如何解决?

Domino配置PUT/PATCH/DELETE请求405问题解决方案

你遇到的两次405错误分别对应两个不同的拦截阶段:

  1. 首次报错是全局HTTP方法未启用,修改HTTPEnableMethods notes.ini参数后已经解决了全局拦截的问题
  2. 第二次报错是请求命中了Domino默认的资源处理逻辑,普通Domino资源(表单、视图、静态页面等)原生不支持PUT/DELETE/PATCH方法,要么是站点级方法允许列表未配置,要么是没有对应的自定义后端程序承接对应路径的请求

1. 补全站点/服务器级的方法允许配置

HTTPEnableMethods只是全局开关,你还需要根据你的部署模式补充对应层级的配置:

  • 已启用因特网站点文档:打开对应站点文档,进入「Internet Protocols」→「HTTP」页签,找到「Allowed Methods」字段,手动添加PUT、DELETE、PATCH到允许列表,保存文档
  • 未启用因特网站点文档:打开服务器文档,进入「Internet Protocols」→「HTTP」页签,同样修改「Allowed Methods」字段添加对应方法

修改完成后需要重启HTTP服务生效。

2. 部署自定义后端程序承接API请求

正如官方帮助文档说明,PUT/DELETE等方法需要自定义程序实现才能使用,Domino环境下常用的实现方式有以下几种:

DSAPI过滤器

用C语言开发Domino DSAPI扩展,注册指定的API路径前缀,接管对应路径的所有请求,可完全自定义HTTP方法处理逻辑,适合高自由度的API开发需求。

Java Servlet/OSGi插件

将你的API逻辑封装为标准Java Servlet或Domino OSGi插件,部署到Domino的HTTP服务内置的Servlet容器中,Servlet原生支持所有HTTP方法,只要请求路径匹配到你的Servlet映射规则,就会绕过Domino默认的资源拦截逻辑。

XPages XAgent

在NSF数据库中创建无UI的XPages(即XAgent),在beforeRenderResponse事件中编写请求处理逻辑,同时需要在XPage属性中开启非POST/GET方法的支持,可配合站点URL重写规则将你的API路径映射到该XPage地址。

CGI程序

将API路径映射到你开发的CGI脚本,Domino会将原始请求方法、请求体等信息传递给CGI程序,由你自行实现业务逻辑。

3. 特殊场景适配

  • 如果你使用的是11.0.1以下版本的Domino,PATCH方法存在原生支持缺陷,可采用X-HTTP-Method-Override兼容方案:客户端发送POST请求,在请求头中携带X-HTTP-Method-Override: PATCH,后端程序读取该头字段识别为PATCH请求处理即可
  • 检查站点URL重写规则,确认PUT/PATCH/DELETE请求没有被错误重定向或拦截
  • 确认API对应的后端资源(如NSF数据库)的ACL权限,给访问用户配置对应操作所需的最小权限(如修改数据需要至少作者权限)

4. 配置验证

所有配置修改完成后,执行以下命令重启HTTP服务:

tell http quit
# 等待10秒左右,确认HTTP进程完全退出
load http

用curl命令测试请求是否正常:

curl -v -X PUT http://<你的Domino服务地址>/<API路径> -d '测试请求体'

内容的提问来源于stack exchange,提问作者Dmytro Pastovenskyi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:27:02