首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Flask不使用VueJS ` `npm run serve`前端持久化会话?

为什么Flask不使用VueJS ` `npm run serve`前端持久化会话?
EN

Stack Overflow用户
提问于 2020-02-09 08:49:11
回答 1查看 260关注 0票数 0

我有一个简单的应用程序,在后端使用Flask和Rest-Plus,由VueCLI 3生成VueJS前端。

我正在尝试使用Flask-Session设置会话,但保存在一个请求中的会话变量在另一个请求中不可用。

我尝试了很多选择,但仍然一无所获。

这是我的vue.config.js

代码语言:javascript
复制
module.exports = {
    devServer: {
        public: "localhost:8080",
        headers: {
            "Access-Control-Allow-Origin": "*",
            "Access-Control-Allow-Credentials": "true",
            "Access-Control-Allow-Headers": "Content-Type, Authorization, x-id, Content-Length, X-Requested-With",
            "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS"
        },
        proxy: {
            '/api*': {
                // Forward frontend dev server request for /api to django dev server
                target: 'http://localhost:5000/'
            }
        }
    }
}

在我的app.py中,我设置了密钥和cors:

代码语言:javascript
复制
app.secret_key = "super_secret"
CORS(app, automatic_options=True, support_credentials=True)

此外,我还在请求处理程序中添加了装饰器:

代码语言:javascript
复制
@cross_origin(supports_credentials=True)
def get(self):

还是一无所获。在/login中,我设置了session['aaa']=1,在另一个请求中,我获得了KeyError。

我通过npm run serve运行前端,通过flask run运行后端。有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-10 05:15:41

通过从flask添加反向代理解决了此问题。我已经将它添加到我的app.py中,这样它就可以将所有请求传递给前端。

如果您要在开发时使用此解决方案,请不要忘记在部署到生产服务器之前删除此终结点。

代码语言:javascript
复制
@app.route('/dev', methods=['GET'])
@app.route('/js/<path:dummy>', methods=['GET'])
def proxy(dummy=None):
    if request.method == 'GET':
        resp = requests.get(request.base_url.replace('5000', '8080'))
        excluded_headers = ['content-encoding', 'content-length', 'transfer-encoding', 'connection']
        headers = [(name, value) for (name, value) in resp.raw.headers.items() if name.lower() not in excluded_headers]
        response = Response(resp.content, resp.status_code, headers)
    return response
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60132604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档