繁体   English   中英

在Drupal中启用和配置cors

[英]Enable and configure cors in Drupal

我正在调试Drupal问题,将其用作无头api服务器。

当有人在JavaScript应用程序中提交表单时,我必须向Drupal的联系表单REST Endpoint发出POST请求。

当我从REST客户端测试该API时,该API正常工作。

但是,当我在浏览器中从JavaScript运行相同的代码时,出现了cors问题。

我确保在sites/default/default.services.yml文件中启用了cors。

但是这些变化没有生效。

以下是sites/default/default.services.yml文件的相关内容

  cors.config:
    enabled: true
    # Specify allowed headers, like 'x-allowed-header'.
    allowedHeaders: ['*']
    # Specify allowed request methods, specify ['*'] to allow all possible ones.
    allowedMethods: ['*']
    # Configure requests allowed from specific origins.
    allowedOrigins: ['*']
    # Sets the Access-Control-Expose-Headers header.
    exposedHeaders: true
    # Sets the Access-Control-Max-Age header.
    maxAge: false
    # Sets the Access-Control-Allow-Credentials header.
    supportsCredentials: false

我在浏览器中遇到以下错误。

Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.

我试图将sites/default/default.services.yml更改为以下内容,但仍然遇到相同的问题。

allowedHeaders: ['x-csrf-token', 'authorization', 'content-type', 'accept', 'origin', 'x-requested-with']

将文件名从default.services.yml更改为services.yml
同样,暴露的标题属性应该是标题名称的数组,或者为false,但绝不能为“ true”。
src: https//www.drupal.org/node/2715637

感谢大家的投入。

它似乎不起作用的原因是因为Drupal安装中已经启用了旧的“ Drupal Cors”模块,该模块具有优先权。

禁用它之后,我对services.yml所做的更改开始生效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM