apache 使用WPGraphQL插件作为后端和NextJS作为前端修复CORS错误

jvlzgdj9  于 2022-11-16  发布在  Apache
关注(0)|答案(3)|浏览(146)

我一直在努力与这个错误后,从谷歌云迁移一个网站,我在其中使用Nginx,现在我改变了托管到Apache服务器.
该网站是在2节前端(托管在Vercel NextJS)和后端,这是一个WordPress网站作为一个API与GraphQL(这是我迁移的)我已经使用GraphQL插件,现在从前端的请求是得到这个错误:
CORS策略已阻止从源[前端域]访问[后端域]上的XMLHttpRequest:请求的资源上不存在“Access-Control-Allow-Origin”标头。
我已经将以下内容添加到.htaccess文件中:

Header add Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET,PUT,POST,DELETE"
Header set Access-Control-Allow-Headers "Content-Type"

我在后端和前端都使用Cloudflare。
不知道还能做什么。我试着回到以前的主机,它的工作完美,所以我不知道是什么问题!请帮助!谢谢!:)

hc8w905p

hc8w905p1#

在 主题 的 functions.php 文件 中 添加 此 过滤 器 , 并 确保 SSL 已 启用

add_filter('rest_pre_serve_request', 'cors_headersxxxx', 0, 4 );
    function cors_headersxxxx() {
      header( 'Access-Control-Allow-Origin: *');
      header( 'Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE' );
      header( 'Access-Control-Allow-Credentials: true' );
      header( 'Access-Control-Allow-Headers: Authorization, Content-Type, X-Requested-With, X-Mystore-Cartkey, X-USER-ID' );
      //header( 'Access-Control-Expose-Headers: X-Mystore-Cartkey' );
    }

    add_filter('rest_api_init', 'wp_mystore_jwt_add_cors_support');
    function wp_mystore_jwt_add_cors_support() {
      $enable_cors = true;
      if ($enable_cors) {
        $headers = 'Access-Control-Allow-Headers, X-Requested-With, Content-Type, Accept, Origin, Authorization';
        header( sprintf( 'Access-Control-Allow-Headers: %s', $headers ) );
      }
    }

中 的 每 一 个

kcrjzv8t

kcrjzv8t2#

很显然,我必须通过保存永久链接设置来刷新永久链接:设置〉永久链接
我在这里找到了解决方案:https://github.com/wp-graphql/wp-graphql/issues/213

cwdobuhd

cwdobuhd3#

这并不是真的安全,但对我来说很有效
我已将其放入.htaccess文件

Header set Access-Control-Allow-Origin '*'
Header set Access-Control-Allow-Headers '*'
Header set Access-Control-Allow-Methods '*'

相关问题