xpages – Domino,CORS和OPTIONS请求

我正在开发一个使用Domino作为后端的AngularJS应用程序.由于我想要比Domino Access Services(DAS)提供的更多自定义选项,我的下一个选择是扩展库中的REST服务.

该应用程序在与Domino不同的域上运行,因此我需要添加CORS标头以使该方案正常工作.使用CORS,浏览器(对于某些请求)首先向服务器发出预检HTTP OPTIONS请求,以检查允许哪些方法(更多关于CORS:http://www.html5rocks.com/en/tutorials/cors/).

我现在遇到的问题是Domino在该OPTIONS请求上抛出Method Not Allowed错误(响应代码405).我已经将它添加到我的网站文档中允许的方法列表中(尽管我不确定REST服务是否会尊重它). DAS请求很好.

查看扩展库中RestDocumentJsonService的source code,似乎根本不支持OPTIONS方法.

有关如何使这项工作的任何想法?或者解决方法?我知道我可以编写自己的servlet或在Domino前面安装代理,但我不想走那条路(但是;-)

最佳答案 如果您尝试使用Authenticated CORS,则需要至少四个标头才能工作

Access-Control-Allow-Credentials: true
access-control-allow-header: X-Requested-With, Origin, Accept, Accept-Version, Content-Type
access-control-allow-method: OPTIONS, GET, PUT, POST, DELETE, PATCH
access-control-allow-origin: http://yourOtherDomain.com

遗憾的是,您只能通过网站文档添加3个标题

您无法通过阶段侦听器添加任何内容,因为ExtLib Rest服务不会通过XSP阶段

您可以使用代理,例如nginx,或者在我的情况下,我使用IHS

http://xomino.com/2014/04/20/adding-custom-http-headers-to-domino-r9-using-ibm-http-server-ihs/

或者您可以滚动自己的REST服务并添加所需的任何标头

点赞