【问题标题】:Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values对预检请求的响应未通过访问控制检查:“Access-Control-Allow-Origin”标头包含多个值
【发布时间】:2019-06-28 22:26:38
【问题描述】:

我已经开发了 Woocommerce ionic 应用程序,但是当我将应用程序与实时站点或服务器连接时,它会给出这个错误

Access to fetch at 'https://www.example.co.uk/shop/wp-json/v3/products/categories?filter[meta]=true&filter[variation]=true' 
    from origin 'http://localhost:8100' has been blocked by CORS policy: Response to preflight
     request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains
     multiple values 'http://localhost:8100, *', but only one is allowed. Have the server send the 
    header with a valid value, or, if an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

请同时查看以下屏幕截图:

为解决此错误,我还将以下代码粘贴到我的服务器 .htaccess 文件中

Header  set Access-Control-Allow-Methods "HEAD, POST, GET, PUT, OPTIONS, PATCH, DELETE"
Header  set Access-Control-Allow-Origin "*"
Header  set Access-Control-Allow-Credentials "true"
Header  set Access-Control-Allow-Headers "X-Accept-Charset,X-Accept,Content-Type,Credentials"

但它仍然显示相同的错误。

1 个月前它工作正常。 我正在使用 ionic CLI 版本是:3.4.0npm 版本是:6.6.0

【问题讨论】:

    标签: angularjs cors ionic3


    【解决方案1】:

    这个问题主要发生在服务器端 尝试更改您的 .htaccess 文件

    喜欢

    <IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin "*"
    </IfModule> 
    

    参考来自 htaccess Access-Control-Allow-Origin

    【讨论】:

    • 感谢您的回复,我已经在服务器的.htaccess 文件中设置了这个Header set Access-Control-Allow-Origin "*"。但它仍然无法正常工作,仅显示正在加载...横幅。
    • 请检查您的 config.xml 文件是否有这一行,否则添加它
    • 没有任何名称为 config.xml 的文件,我使用的是 Wordpress 并且有 .htaccess 文件。我也添加了上面的代码,但仍然无法正常工作。
    【解决方案2】:

    根据错误信息,浏览器收到以下响应头:

    Access-Control-Allow-Origin: http://localhost:8100, *
    

    不允许在响应中指定多个来源,因此您会收到 CORS 错误。

    您应该尝试了解是什么让您的服务器返回多个值。 我会:

    1. 尝试使用不带任何扩展程序的隐身模式,因为某些扩展程序可以 修改此标头。
    2. 在代码和 Apache 配置文件中搜索 任何带有Access-Control-Allow-Origin 的行

    【讨论】:

    • 我已经通过禁用所有浏览器扩展进行检查,但仍然显示相同的错误。
    • 当我们的站点从 http 更改为 https 时会出现此错误。
    • 可能是您有一些仅适用于 https 的 CORS 配置
    猜你喜欢
    • 2018-10-12
    • 2019-02-02
    • 1970-01-01
    • 2016-04-09
    • 2017-11-27
    • 2018-02-14
    • 2018-08-04
    • 2019-09-07
    • 2018-09-16
    相关资源
    最近更新 更多