【问题标题】:I' m facing issue while create cookie using cross-domain(python flask, ReactJS)我在使用跨域创建 cookie 时遇到问题(python 烧瓶,ReactJS)
【发布时间】:2018-10-15 10:55:22
【问题描述】:

这个问题与python3.5和react16.2有关。当我尝试使用 python 烧瓶作为后端从跨域设置 cookie 并作为前端做出反应时。在这种情况下,我无法在浏览器中设置 cookie。那么是否有任何安全性不允许在浏览器中设置 cookie...

我使用flask的set_cookie()方法设置了一个cookie。

场景: 当我当时尝试从 iframe 设置 cookie 时,我无法在浏览器中设置 cookie。我在 python 中没有收到任何错误。

res = Response(json.dumps(schema.dump(self.message).data), mimetype="application/json")
res.set_cookie(key, value, expires=datetime.datetime.now() + datetime.timedelta(days=40))

我认为这个问题与 ReactJS 有关。有没有违反跨域概念的属性。

【问题讨论】:

    标签: python-3.x reactjs cookies


    【解决方案1】:

    您是否在响应对象上使用 set_cookie,如下例所示:

    @app.route('/setcookie', methods = ['POST', 'GET'])
    def setcookie():
       if request.method == 'POST':
       user = request.form['nm']
    
       resp = make_response(render_template('readcookie.html'))
       resp.set_cookie('userID', user)
    
       return resp
    

    如果您发布代码示例,我会看看是否可以提供帮助。

    【讨论】:

    • 感谢您的回复。但是当我当时尝试从跨域设置 cookie 时,我无法设置 cookie。你知道在 ReactJS 中限制在浏览器中设置 cookie 的任何属性吗?
    • 在您的问题中,您提到尝试从 iframe 设置 cookie。该 iframe 是否与您的网站位于同一域中?无法在另一个域上为一个域设置 cookie。
    • 是的,我想从 iframe 设置一个 cookie。不,这是一个不同的域。它适用于简单的 javascript,但我想知道为什么它不适用于 ReactJS
    • 不确定我是否完全理解这个问题。我怀疑这个问题是由 React 引起的。你如何使用烧瓶在 iframe 中设置 cookie? Flask 在服务器上运行。不是前端。如果您能够向我展示整个文件或理想情况下您的代码所在的存储库,可能会提供更多帮助。
    【解决方案2】:

    我得到了答案。当您尝试使用跨域将 cookie 从 python 设置为 ReactJS 时,您必须在 ReactJS 中包含一个属性,即

    withCredentials: False
    

    此属性允许您设置 cookie。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多