PHP从JavaScript调用时Cookie未定义,浏览器调用正常求助
- 现有一套包含三个脚本的流程:前端PHP页面用于选择航空公司,将选择结果存入Cookie后,调用JavaScript脚本获取PHP接口数据并展示图表
- PHP脚本
airline_fetch.php在浏览器直接访问时,能正常读取airlineCookie并返回对应数据;但通过JavaScript的fetch方法调用该脚本时,PHP中检测不到$_COOKIE["airline"],会输出"Cookie Not Set" - 浏览器的应用程序面板中可以确认
airlineCookie确实存在;如果在fetch请求中硬编码传递airline参数,接口能正常返回数据 - 尝试过使用AJAX请求、直接传递PHP变量等方式,均未解决问题
相关信息
Cookie面板情况
浏览器应用程序面板中可见airline Cookie(值为"FedEx"),同时存在csrftoken Cookie
浏览器直接访问PHP脚本的输出示例
FedEx { "csrftoken":"Ajy5Fvg1A8gVHUN4Al5B4heZxn8LFuGFz1ZAPzcQWXJc7tQguB6yePtbmODOBCTh", "airline":"FedEx" } [ { "Day":"Thursday", "XDate":"January-04-2024", "Time":"04:59:59", "Flight_Number":"FX1444", "Airline_Name":"FedEx", "IATA":"MEM", "From_Airport":"Memphis International", "IATC":"FLL","To_Airport ... ]
网络请求情况
网络面板中的fetch请求记录显示请求已发送,但请求头未携带airline Cookie
相关代码
JavaScript fetch请求代码
async function getData() { const response = await fetch('http://192.168.1.2:8081/airline_fetch.php', {credentials: "same-origin"}); const data = await response.json(); console.log(data); }
PHP Cookie处理代码
if (isset($_COOKIE["airline"])) $Airline_Name = $_COOKIE["airline"]; else echo "Cookie Not Set";
内容的提问来源于stack exchange,提问作者Robert E. Smith
相关产品推荐
相关产品推荐

