2016-10-10 10 views
1

AngularJSからこのAPIを使用しようとしているときにFlaskで書かれたAPIがあります。401エラーが不正になっています。同じ資格の同じリクエストがPostmanまたはHTTPieからうまく機能しています。これは、GETまたはPOSTリクエストで発生しています。Flask API OPTIONS要求をブロックします

HTTPieとAngularリクエストの違いは、AngularがGETリクエストの前にOPTIONSを呼び出していることです。

これは、認証が必要な私のPythonコード(APIは青写真である)である:

@api.before_request 
@rate_limit(limit=5, period=15) 
@auth_token.login_required 
def before_request(): 
    """All routes in this blueprint require authentication.""" 
    pass 

私のAPIから取り組んでいる唯一の方法は、この青写真の外にあるものである、私の結論はということです@ api.before_requestと@ auth_token.login_requiredは、OPTIONSリクエストのために資格情報が送られることを期待しています。何ができるでしょうか?

が、私は問題を把握とても

+0

これはCORSの問題ではありませんか? – pvg

+0

私はそうではないと思う、私はフラスコを実行するためのCORSのプラグインがあります。 "XMLHttpRequestでhttp:// localhost:5000/api/v1/audios /を読み込めません"というエラーがChromeに表示されます。プリフライトの応答に無効なHTTPステータスコード401があります。 before_requestから@ auth_token.login_requiredを削除した場合は、データを取得できます(ただし、ログインを要求しません) – Matias

答えて

0

をありがとう、私はプラグインフラスコ-HTTPAuthを更新した後に解決しました。

私はバージョン2.2.1を持っていましたが、3.2.1に移動した後、それは解決しました。

Amazon EC2のインスタンスで同じことを試してみて、同じ解決策で解決しました。私はそれがこれであると確信しています。

関連する問題