我正在使用Domino作为后端的AngularJS应用程序。由于我想要比Domino Access Services(DAS)提供的更多定制选项,我的下一个选择是来自扩展库的REST服务。Domino,CORS和OPTIONS请求
该应用程序在Domino的独立域上运行,因此我需要添加CORS标头才能使该方案正常工作。使用CORS,浏览器(对于某些请求)首先向服务器发出预检HTTP OPTIONS请求,以检查允许哪些方法(更多CORS在此处:http://www.html5rocks.com/en/tutorials/cors/)。
我现在遇到的问题是Domino在该OPTIONS请求上抛出Method Not Allowed
错误(响应代码405)。我已经将它添加到我的Internet站点文档中允许的方法列表中(尽管我不确定REST服务是否会遵守这些方法)。请求通过DAS罚款。
查看扩展库中的RestDocumentJsonService
的source code似乎根本不支持OPTIONS方法。
有关如何使这项工作的任何想法?或者为了解决方法?我知道我可以编写自己的servlet或在Domino前安装一个代理,但我不想走那条路线(还;-)
你有什么头试图将POST请求的内容类型覆盖为'application/x-www-form-urlencoded','multipart/form-data'或'text/plain'?这可以防止浏览器发送预检请求。 –
这不起作用(对于'xe:restService'组件):它会抛出一个错误,指出Content-Type必须是“application/json”(对于POST请求以及PUT和PATCH)。 –
如果你真的想在RestDocumentJsonService中添加OPTIONS方法,你可以扩展它只覆盖你需要的东西,然后在Extension Library的Rest服务 –