我正在编写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上,此变量不返回任何值
我通过向Fetch中的选项添加凭据“include”来解决此问题,如下所示:
获取(url,{method:'POST',凭据:'include'})
问题是跨域问题:获取url与调用获取脚本的url不匹配。出于用户隐私考虑,在这种情况下,Firefox不会在请求中包含cookie,因此request.get_cookie为空且未返回任何cookie
相关问题 更多 >
编程相关推荐