3

我正在尝试解决 Ajax 请求和 woocommerce API 的问题。实际上,当我请求 WC 时,缺少 CORS 标头。这是错误:

从源“ https://www.client.com ”访问“ https://mywebsite.com/woocommerce/?wc-api=software-api&request=check&email=email&license_key=license&product_id=product ”的 XMLHttpRequest已被 CORS 阻止策略:请求的资源上不存在“Access-Control-Allow-Origin”标头。

我已经将此代码添加到我的主题 functions.php 文件中:

function add_cors_http_header(){
  header("Access-Control-Allow-Origin: *");
  header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS, READ');
  header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token,authorization,XMLHttpRequest, user-agent, accept, x-requested-with');
  header("Access-Control-Allow-Credentials: true");

  if ( 'OPTIONS' == $_SERVER['REQUEST_METHOD'] ) {
    status_header(200);
    exit();
  }
}

add_action('init','add_cors_http_header');

错误仍然在这里。我不明白我应该将代码添加到我的响应中的 CORS 标头的位置。

编辑

这是失败的请求(来自 Chrome 开发工具):

在此处输入图像描述

编辑 2

也尝试添加Header set Access-Control-Allow-Origin "*"我的 .htaccess,但仍然无法正常工作。

编辑 3

我尝试直接从 plesk 面板添加 Header 指令。它似乎会影响错误(YAY !!!)。当我添加Access-Control-Allow-Origin: "*"错误现在是:

在此处输入图像描述

4

1 回答 1

-1

根据@user127091 评论,我通过将标头直接添加到服务器配置(在我的情况下为 Plesk)解决了这个问题。

于 2019-08-14T10:38:18.837 回答