[英]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.