Nar*_*ski 3 php wordpress cors
我正在尝试添加一个自定义函数,它将添加Access-Control-Allow-Origin标头,因为我无法访问.conf服务器上的文件.
以下是我的代码;
add_filter( 'wp_headers', array( 'eg_send_cors_headers' ), 10, 1 );
function eg_send_cors_headers( $headers ) {
$headers['Access-Control-Allow-Origin'] = get_http_origin();
$headers['Access-Control-Allow-Credentials'] = 'true';
if ( 'OPTIONS' == $_SERVER['REQUEST_METHOD'] ) {
if ( isset( $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'] ) ) {
$headers['Access-Control-Allow-Methods'] = 'GET, POST, OPTIONS';
}
if ( isset( $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'] ) ) {
$headers['Access-Control-Allow-Headers'] = $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'];
}
}
return $headers;
}
Run Code Online (Sandbox Code Playgroud)
我保存时会收到此错误:
注意:未定义的偏移量:在873行的/example/wp-includes/plugin.php中为1警告:call_user_func_array()期望参数1是有效的回调,数组在/ example/wp-includes/plugin中必须只有两个成员. php在192行
好吧我明白了.希望这有助于其他人.
由于我只是在没有方法的情况下调用函数,所以我只是在add_filter函数中删除了函数名称周围的数组().正如您在此处的示例#1中所看到的,如果您只是使用参数调用函数,则只需将函数名称包装在单引号中.
固定代码如下:
add_filter( 'wp_headers', 'eg_send_cors_headers', 10, 1 );
function eg_send_cors_headers( $headers ) {
$headers['Access-Control-Allow-Origin']= get_http_origin();
$headers['Access-Control-Allow-Credentials'] = 'true';
if ( 'OPTIONS' == $_SERVER['REQUEST_METHOD'] ) {
if ( isset( $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'] ) ) {
$headers['Access-Control-Allow-Methods'] = 'GET, POST, OPTIONS';
}
if ( isset( $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'] ) ) {
$headers['Access-Control-Allow-Headers'] = $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'];
}
}
return $headers;
}
Run Code Online (Sandbox Code Playgroud)