瓶子的请求。get_cookie(“cookiename”)在所有浏览器上都有效,但在Firefox上不返回任何结果

2024-05-14 17:59:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写pymon游戏代码。创建新游戏时,玩家可以加入。当玩家点击“加入”按钮(使用react实现)时,ajax请求被发送到“games//player”,后者从cookie中提取玩家名称,并将其添加到MySql数据库中的游戏表中。这在所有浏览器中都能正常工作,但在Firefox上,由于某种原因,读取播放器cookie的结果是“无”

我已经检查了Firefox浏览器上的cookie,其中包括具有正确玩家名称的“玩家”cookie。我还检查了cookie的路径,它是“/”,这意味着它也应该很好。我不明白除了firefox之外,其他浏览器都可以使用相同的代码,这可能会出什么问题。这是我的密码:

@app.post('/games/<game_id>/players') 
def joinGameHandler(game_id): 
    playerName = request.get_cookie("player") 
    print(playerName) 
    result = controller.joinGame(game_id, playerName) 
    return utils.jsonResponse(response, {"result":result})

在所有浏览器中,代码工作正常,playerName返回播放器名称。但是,在Firefox上,此变量不返回任何值


Tags: 代码名称idgame游戏cookie玩家浏览器
1条回答
网友
1楼 · 发布于 2024-05-14 17:59:48

我通过向Fetch中的选项添加凭据“include”来解决此问题,如下所示:

获取(url,{method:'POST',凭据:'include'})

问题是跨域问题:获取url与调用获取脚本的url不匹配。出于用户隐私考虑,在这种情况下,Firefox不会在请求中包含cookie,因此request.get_cookie为空且未返回任何cookie

相关问题 更多 >

    热门问题