当通过来自服务器的POST请求发送时,未设置PHP Cookie

当通过来自服务器的POST请求发送时,未设置PHP Cookie,php,angular,cookies,Php,Angular,Cookies,我想在用户接受cookie时设置一个基本cookie。因此,我在PHP后端使用Angular。Angular通过localhost上的XAMPP在localhost:4200和PHP上运行。当我将“set cookie”(设置cookie)部分分隔到文件末尾时,cookie就被设置好了。当我执行API调用时,if条件也起作用,因为我得到了正确的响应消息。但是,当我通过Angular执行API调用时,没有设置cookie <?php header('Access-Control-Allow-

我想在用户接受cookie时设置一个基本cookie。因此,我在PHP后端使用Angular。Angular通过localhost上的XAMPP在localhost:4200和PHP上运行。当我将“set cookie”(设置cookie)部分分隔到文件末尾时,cookie就被设置好了。当我执行API调用时,if条件也起作用,因为我得到了正确的响应消息。但是,当我通过Angular执行API调用时,没有设置cookie

<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: PUT, POST, GET, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: content-type');
header('Content-Type: application/json');

$json = file_get_contents('php://input');
$cookies = json_decode($json, true);

$cookie_name = 'allCookies';

if ($cookies['allCookies'] == true) {
    $cookie_value = 'set';
    setcookie($cookie_name, $cookie_value, time() + (86400 * 365), '/');
    $message = "Cookies gesetzt!";
} else {
    $cookie_value = 'unset';
    unset($_COOKIE["allCookies"]);
    setcookie($cookie_name, $cookie_value, time() - 3600, '/');
    $message = "Cookies entfernt!";
}

$response = array(
    "message" => $message,
);

// setcookie($cookie_name, 'set', time() + (86400 * 365), '/'); When I outcomment this line and run the php in the browser, a cookie is set correctly

echo json_encode($response);

您也可以分享您的角度代码。因为您使用的是两个不同的端口,您必须在浏览器中打开api地址才能在浏览器的开发工具中查看cookies。@Alimo您需要查看哪些部分?我已在本地试用了您的代码,并与postman一起使用,当我发送{“allCookies”:“set”}作为请求主体时,它会返回“cookies gesetzt!”消息,并发送值为allCookies=Set的Set Cookie标头;expires=Sat,2021年9月11日18:32:20 GMT;最大年龄=31536000;path=/您的Angular应用程序应该有问题,可能是您正在检查端口4200上的cookie,或者您没有正确发送请求正文。@Alimo我已经上传了一个生产版本,在那里可以正常工作。作为post请求的响应,我收到的消息是正确的,因此我认为问题在于php或端口配置