函数文档

get_http_origin()

💡 云策文档标注

概述

get_http_origin() 函数用于获取当前 HTTP 请求的 Origin 头信息,返回 URL 字符串或空字符串。它通过 $_SERVER['HTTP_ORIGIN'] 获取值,并应用 'http_origin' 过滤器进行修改。

关键要点

  • 函数返回当前请求的 HTTP Origin URL,若无则返回空字符串
  • 内部检查 $_SERVER['HTTP_ORIGIN'] 变量来获取 Origin 值
  • 使用 apply_filters('http_origin', $origin) 允许通过过滤器修改返回值
  • 与 CORS 相关函数如 rest_send_cors_headers() 和 is_allowed_http_origin() 配合使用
  • 自 WordPress 3.4.0 版本引入

代码示例

function get_http_origin() {
    $origin = '';
    if ( ! empty( $_SERVER['HTTP_ORIGIN'] ) ) {
        $origin = $_SERVER['HTTP_ORIGIN'];
    }
    return apply_filters( 'http_origin', $origin );
}

注意事项

  • Origin 头通常用于跨域请求(CORS),确保安全处理
  • 可通过 'http_origin' 过滤器自定义返回值,例如添加验证逻辑
  • 函数不验证 Origin 是否被允许,需结合 is_allowed_http_origin() 使用

📄 原文内容

Gets the HTTP Origin of the current request.

Return

string URL of the origin. Empty string if no origin.

Source

function get_http_origin() {
	$origin = '';
	if ( ! empty( $_SERVER['HTTP_ORIGIN'] ) ) {
		$origin = $_SERVER['HTTP_ORIGIN'];
	}

	/**
	 * Changes the origin of an HTTP request.
	 *
	 * @since 3.4.0
	 *
	 * @param string $origin The HTTP origin for the request.
	 */
	return apply_filters( 'http_origin', $origin );
}

Hooks

apply_filters( ‘http_origin’, string $origin )

Changes the origin of an HTTP request.

Changelog

Version Description
3.4.0 Introduced.