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

如何在PHP CURL请求中启用credentials: "include"参数?

在PHP CURL中实现类似fetch credentials: "include"的功能

JavaScript里的credentials: "include"作用是让请求携带当前域名下的Cookie、HTTP认证凭证(跨域场景下也会发送)。在PHP CURL中,要实现相同效果,需要通过Cookie相关的选项配置来完成,具体如下:

核心配置说明

  • CURLOPT_COOKIEFILE:指定读取Cookie的文件路径(如果需要复用之前存储的Cookie),即使文件为空也要设置,这样CURL才会发送Cookie
  • CURLOPT_COOKIEJAR:指定保存响应返回的Cookie的文件路径(可选,用于后续请求复用Cookie)
  • 如果需要手动指定特定Cookie值,可以用CURLOPT_COOKIE直接设置字符串格式的Cookie(比如"name=value; name2=value2")

修改后的完整PHP代码

<?php
// 注意:以下两个Access-Control头是给前端跨域请求用的,和当前CURL请求无关,根据实际需求保留
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Credentials: true');

$headersArray = array("Content-Type:application/json");
$rawData = array( "key0" => "value0" );
$jsonData = json_encode($rawData);

$curl = curl_init();
// 定义Cookie存储路径(可以自定义路径,确保PHP有读写权限)
$cookieFile = __DIR__ . '/curl_cookies.txt';

curl_setopt_array($curl, array(
    CURLOPT_URL => "api-path", // 替换为实际的API地址
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => $headersArray,
    CURLOPT_POSTFIELDS => $jsonData,
    // 关键:开启Cookie发送与存储
    CURLOPT_COOKIEFILE => $cookieFile, // 读取已有Cookie
    CURLOPT_COOKIEJAR => $cookieFile,  // 保存响应的Cookie
    // 如果需要手动指定Cookie,取消下面注释并修改内容
    // CURLOPT_COOKIE => "key01=value01; key02=value02",
    CURLOPT_RETURNTRANSFER => true, // 让curl_exec返回内容而不是直接输出
));

$response = curl_exec($curl);
curl_close($curl);

$phpObject = json_decode($response, true);
echo "<br>param 01 value = " . $phpObject["param-01-key"];
?>

额外注意事项

  1. 确保$cookieFile指定的路径有PHP的读写权限,否则Cookie无法正常读取或存储
  2. 如果API服务器依赖的是特定会话Cookie,你需要先获取到对应的Cookie值(比如通过登录请求),再通过CURLOPT_COOKIE或CURLOPT_COOKIEFILE携带
  3. 原代码中的Access-Control-Allow-Origin: *和Access-Control-Allow-Credentials: true不能同时生效(浏览器规定),如果前端需要带凭证请求,Access-Control-Allow-Origin必须指定具体域名而非通配符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 13:16:01