You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP:http_get请求未发送HTTP_ORIGIN,如何配置发送该值?

如何在HTTP GET请求中添加Origin请求头以满足$_SERVER['HTTP_ORIGIN']需求

当然可以搞定这个问题!$_SERVER['HTTP_ORIGIN']本质上是PHP对请求里的Origin请求头的解析结果——也就是说,你只需要在发起GET请求时手动添加这个请求头,目标脚本就能拿到对应的参数了。

下面给你几种常见场景的实现示例:

使用PHP cURL发起请求

这是PHP里最常用的HTTP请求方式,灵活性很高:

$targetUrl = 'http://your-target-domain.com/test.php';
$desiredOrigin = 'https://your-own-domain.com'; // 替换成你需要的Origin值

// 初始化cURL会话
$curlHandler = curl_init($targetUrl);

// 设置选项:返回响应内容而不是直接输出
curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, true);
// 添加Origin请求头
curl_setopt($curlHandler, CURLOPT_HTTPHEADER, [
    "Origin: $desiredOrigin"
]);

// 执行请求并获取响应
$response = curl_exec($curlHandler);
// 关闭会话
curl_close($curlHandler);

// 处理返回的响应
var_dump($response);

使用file_get_contents发起请求

如果你的PHP环境允许使用流上下文,这种方式更简洁:

$targetUrl = 'http://your-target-domain.com/test.php';
$desiredOrigin = 'https://your-own-domain.com';

// 创建包含请求头的上下文
$requestContext = stream_context_create([
    'http' => [
        'header' => "Origin: $desiredOrigin\r\n"
    ]
]);

// 发起请求
$response = file_get_contents($targetUrl, false, $requestContext);

// 处理响应
echo $response;

命令行cURL测试

如果你只是想快速验证,用命令行cURL直接加请求头就行:

curl -H "Origin: https://your-own-domain.com" http://your-target-domain.com/test.php

额外注意事项

  • 有些服务器会有CORS策略验证,只有特定域名的Origin才会被接受,所以要确保你设置的Origin值是目标服务认可的。
  • 如果目标服务器开启了严格的Origin校验,随便填一个不被允许的域名可能还是会请求失败,最好先确认目标服务允许的Origin列表。

内容的提问来源于stack exchange,提问作者fightstarr20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:48:48