【问题标题】:How to enable CORS in OrientDb server-config.xml如何在 OrientDb server-config.xml 中启用 CORS
【发布时间】:2016-07-10 08:35:46
【问题描述】:

我正在使用 OrientDb 数据库,我已经在我的系统中设置了 Orientdb 服务器,OrientDb 已经暴露了 Http Api。所以我试图从 OUser 调用 API http://localhost:2480/query/test2/sql/select *,从 javascript 使用 AJAX 调用,我已经设置了标题

Accept : "application/json;charset=utf-8",  
"Access-Control-Allow-Origin":"*",  
'Access-Control-Allow-Methods': 'POST, GET, DELETE, HEAD, OPTION',  
'Access-Control-Allow-Headers': 'Origin, x-requested-with, content-type,  accept',  
'Access-Control-Allow-Credentials': true  

我还在 orientdb-server-config.xml 中启用了 CROS

  1. parameter name="network.http.additionalResponseHeaders" value="Access-Control-Allow-Origin:*;Access-Control-Allow-Credentials: true;Access-Control-Allow-Headers: Origin, x-requested- with, content-type, accept;Access-Control-Allow-Methods: POST, GET, DELETE, HEAD, OPTION"
  2. 参数值="utf-8" name="network.http.charset"

还在继续

预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Origin。

如何在 OrientDb 服务器中启用 CORS?

【问题讨论】:

    标签: javascript cross-domain orientdb same-origin-policy


    【解决方案1】:

    Access-Control-Allow-*响应 标头,而不是请求标头。使用它们是为了让服务器可以授予您的 JS 读取其数据的权限(而不是让您的 JS 可以授予自己读取服务器数据的权限)。

    您将它们设置为自定义请求标头(在您的 JavaScript 中)。

    CORS 规范要求您具有设置自定义请求标头的明确权限,而您没有服务器设置这些标头的权限(您为什么要设置这些标头?它们是无稽之谈。)。

    不要在 JS 中设置它们。

    【讨论】:

    • 嗨昆汀,我同意你所说的观点。只是因为没有得到服务器的响应,所以我在客户端(js)和服务器端都设置了它。我在 orientdb-server-config.xml 文件中添加了启用 CORS 的参数。仍然收到 请求标头字段 Access-Control-Allow-Origin 在预检响应中被 Access-Control-Allow-Headers 不允许。对此的任何建议都会有所帮助,谢谢。
    • “只是因为没有得到服务器的响应,所以我在客户端(js)和服务器端都设置了它。” — 正如我所说,将其设置在客户端会导致问题。您正在收到来自服务器的响应。它告诉您不允许在客户端设置Access-Control-Allow-Origin。别这样了。
    猜你喜欢
    • 2020-03-04
    • 2020-12-27
    • 2021-06-07
    • 2014-07-29
    • 2015-05-27
    • 2020-11-24
    • 2018-10-19
    • 2021-04-14
    相关资源
    最近更新 更多