javascript - 在 Drupal 中启用和配置 cors

标签 javascript rest drupal cors drupal-8

我正在调试 Drupal 问题,它被用作 headless api 服务器。

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

当我从 REST 客户端测试 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
另外,exportedHeaders 属性应该是 header 名称数组,或者为 false,但绝不能为“true”。
来源:https://www.drupal.org/node/2715637

关于javascript - 在 Drupal 中启用和配置 cors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48258960/

相关文章:

javascript - 如何在 Bootstrap Carousel 中制作流畅的图像

javascript - 复选框而不是按钮

javascript - 如何使用 selenium python 从动态网站检索所有链接

java - 如何使用curl测试Java RESTful Web服务 - PUT动词的问题

java - 通过 HTTPS 的 RESTful Web 服务

php - Drupal - CCK 字段 - 需要

javascript - jQuery - 如果在代码末尾求值,console.log 会提供空数组

javascript - 如何向 Drupal 6 中的特定模块发送 ajax post 请求?

Drupal 8 孤儿段落

rest - 通过 REST v3 上传的文件显示为 "Untitled"