MarkLogic HTTP Server:设置 CORS 标头

Posted

技术标签:

【中文标题】MarkLogic HTTP Server:设置 CORS 标头【英文标题】:MarkLogic HTTP Server: Set up CORS headers 【发布时间】:2014-08-07 20:04:17 【问题描述】:

我在CentOS 6.5 box 上运行MarkLogic 7。我的html/JS 应用程序托管在同一台机器上的 MarkLogic HTTP 服务器上。该应用程序在端口 8003 上运行,并且需要通过在不同端口 8007 上运行的 REST API 访问数据。当我在应用程序中使用 AJAX 请求时,我收到一个错误提示

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://172.16.100.104:8003' is therefore not allowed access.  

之前有人为CORS 设置过MarkLogic 吗?任何帮助都会很棒。

【问题讨论】:

【参考方案1】:

您可以使用https://docs.marklogic.com/xdmp:add-response-header 设置Access-Control-Allow-Origin 标头。您必须为需要使用跨站点请求的每个端点执行此操作:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS 有详细信息。

【讨论】:

只是为了好奇,如果我使用 MarkLogic 的内置 REST API 访问我的数据库,你知道我该怎么做吗? 内置的 REST API 端点似乎不支持任何添加任意响应标头的机制。但是,您应该能够在编写 REST 扩展时添加自己的标头:docs.marklogic.com/guide/rest-dev/extensions 对于内置端点,您可能会考虑通过另一个应用服务器层或透明反向代理来路由请求。无论哪种方式,目标都是重新路由请求,以便浏览器认为两个 REST API 实例位于同一服务器上。

以上是关于MarkLogic HTTP Server:设置 CORS 标头的主要内容,如果未能解决你的问题,请参考以下文章

MarkLogic LDAP身份验证

我可以在 Marklogic Server 的 xquery 中声明一个全局变量吗?

MarkLogic:在 SPARQL 查询中使用聚合函数

MarkLogic 8 - 按路径索引排序

MarkLogic 8 和服务器端 JavaScript - 调试支持

Camel + marklogic不使用Marklogic Content Pump