我正在研究pymon游戏代码。创建新游戏后,玩家即可加入。当玩家按下“加入”按钮(通过react实现)时,ajax请求将发送到“游戏//玩家”,该请求从cookie中提取玩家名称并将其添加到MySql DB中的游戏表中。在所有浏览器上都可以正常工作,但是在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上,此变量返回None。
答案 0 :(得分:0)
我通过在Fetch的选项中添加凭据:'include'来解决该问题,
fetch(URL,{方法:“ POST”,凭据:“ include”})
问题出在跨域问题:获取网址与调用获取脚本的网址不匹配。为了用户隐私,在这种情况下,Firefox在请求中不包含cookie,因此request.get_cookie为空并返回None。