0

過去2日間、私は自分の問題を解決しようとしました。今、助けが必要です。私の仕事はとてもシンプルです。Jquery ajax リクエストは、ユーザー名とパスワードをサーバーに投稿します。ここで、python フレームワーク「Flask」です。非常に単純な例を作成しましたが、それでも機能しません。

アヤックス:

$.ajax({
                    url: "http://localhost:5000/login",
                    type: "POST",
                    dataType: "json",
                    data: values, //(json with username and password)
                    complete:function(response){
                        console.log(response);
                    }

                });

成功関数とエラー関数を書き直そうとしましたが、結果は同じです。すべてが返されます:

Object { readyState=0, status=0, statusText="error", more...}

フラスコの実装:

@app.route("/login", methods=["GET", "POST"])
def login_page():

    return jsonify(redirect="index.html")

ヘッダー:

応答:

Content-Length  30
Content-Type    application/json
Date    Sun, 20 Oct 2013 09:50:19 GMT
Server  Werkzeug/0.9.3 Python/2.7.3
Set-Cookie  session=eyJfaWQiOnsiIGIiOiJOakkwTUdVM01HVXhNR0prWmpka05qQXlPRGcwT1dWbFlUQmhPRGRpT0RrPSJ9fQ.BUU42w.FDnVp15DxEsMPP_TsOpq8OzzU5I; HttpOnly; Path=/

リクエスト:

Accept  application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language cs,en-us;q=0.7,en;q=0.3
Cache-Control   no-cache
Connection  keep-alive
Content-Length  102
Content-Type    application/x-www-form-urlencoded; charset=UTF-8
Host    127.0.0.1:5000
Origin  http://localhost
Pragma  no-cache
Referer http://localhost/login.html
User-Agent  Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0

リダイレクトを返そうとしたところ、コンソールのネットワーク ログに返されたことが示されましたが、ajax がリダイレクトされないことがわかりました ( https://stackoverflow.com/a/17256609/2107985 )。ajax関数のconsole.logに「エラー」が表示されるたびに、200 OKがあります。

手動で link:http://localhost:5000/loginをブラウザーに入力すると、json が正常に返されます。

4

1 に答える 1

1

あなたの要求は言ってOrigin http://localhostいますが、あなたが要求している URL は ですhttp://localhost:5000/login

コンソールに次の警告が表示されます。

http://localhostAccess-Control-Allow-Origin でオリジンが許可されていません。

データを読み取る能力は、同一オリジン ポリシーによって制限されます。両方のリクエストに同じオリジンを使用するか、それを回避する必要があります。

于 2013-10-20T10:59:20.017 に答える