ALLOW_Http_Origins()仅适用于主题函数.php

时间:2019-07-12 作者:Sean D

以下代码适用于我的主题函数。php文件,但不在插件的主/入口文件中:

/** Allow cross origin resource access
 */
function add_cors_http_header(){
  header("Access-Control-Allow-Origin: *");
}
add_action(\'init\',\'add_cors_http_header\');
如果放入主插件文件,我会看到:

Access to XMLHttpRequest at \'http://localhost/
wptest2/wp-admin/admin-ajax.php\' 
from origin \'http://localhost:8080\' 
has been blocked by CORS policy: 
No \'Access-Control-Allow-Origin\' header 
is present on the requested resource.
我只需要使用我的插件文件设置CORS,这样用户就不必定制MOD,有什么方法可以做到这一点吗?

还尝试了插件条目文件(但失败):

function add_allowed_origins(array $origins = []) {
  $origins[] = \'http://localhost:8080\';
  return $origins;
}
add_filter(\'allowed_http_origins\', \'add_allowed_origins\');

function add_cors_http_header() {
  header("Access-Control-Allow-Origin: *");
}
add_action(\'send_headers\', \'add_cors_http_header\');

1 个回复
最合适的回答,由SO网友:nmr 整理而成

尝试使用send_headers 动作挂钩代替init. 它应该会起作用。

add_action( \'send_headers\', \'add_cors_http_header\' );

function add_cors_http_header()
{
    header("Access-Control-Allow-Origin: *");
}

相关推荐

当我尝试登录时,我正在创建的插件出现‘Headers Always Sent’错误

我正在尝试创建我的第一个插件。到目前为止,它实际上工作正常,但有一个错误:当我尝试登录到wp admin时,会收到一条“Headers ready Sent”PHP消息。如果我从wpcontent/plugins目录中删除插件文件,像往常一样登录,然后替换插件文件,它工作得很好——这似乎只是在登录和注销时发生的。我的(缩写)代码是:<?php /* Plugin Name: Product Manager Plugin URI: http://www.tech-knowled