从应用程序发送请求时总是返回400(flask_corse)

问题描述 投票:0回答:2

我有一个后端是在flask和flask_restful中实现的,并且有许多不同的路由。我的前端正在另一个来源运行,这意味着我使用了flask_curse,以便让我的前端向我的后端发送请求。

Bellow你可以看到我的应用程序的初始化:

app = Flask(__name__)
app.register_blueprint(check_routes_page)
CORS(app, supports_credentials=True)

这是我从前端打电话的路线:

@check_routes_page.route(API_URL +API_VERSION +'check/email', methods=['POST'])
def check_email():
    email = request.form['email']
    user = User.query.filter(User.email == email).first()
    if user:
        return jsonify({'success':True}), 200
    else:
        return jsonify({'success': False}), 404

当我使用Postman发送请求时,一切都很完美。然而,当我从我的应用程序发送请求时,我总是回到400.我也改变了内容类型而没有任何成功。

这是我从我的申请发送的请求。

checkMailAddress(email: string): boolean {

        let requestUrl = 'http://X/application/api/V0.1/check/email';
        let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
        let body = JSON.parse('{"email":"' + email + '"}');
        let options = new RequestOptions({ headers: headers });
        let respo: any
        let us = this.http.post(requestUrl, body, options)
            .map((response) => response.json())
            .subscribe(
            function(response) {
                console.log("Success Response:" + response);
                respo = response;

            },
            function(error) {
                console.log("Error happened" + error);
            },
            function() {
                console.log("the subscription is completed");
                console.log(respo.status);
            }
            );
        return true;
    }

当我发送内容类型为Json的请求时,客户端首先发送一个选项请求(返回代码200),但仍然失败并显示实际请求。

我很感谢任何提示或建议。

python python-3.x flask flask-cors
2个回答
0
投票

尝试更改此行:

user = User.query.filter(User.email == email).first()

至:

user = User.query.filter(email=email).first()


0
投票

当这条线路失败时,email = request.form['email']然后烧瓶发送了400个错误的请求。使用request.isjson()检查请求体是json还是使用data = request.getjson()的任何其他类型然后使用qazxswpoi将数据转换为json

© www.soinside.com 2019 - 2024. All rights reserved.