2016-06-14 7 views
0

でJSONを送信:はjqueryのは、私は、文字列として書式JSONを取ると、私はこのようなカールを経由して要求を送信するときウィッヒ作品(単にテスト目的のために)それを返すフラスコサーバーを持っているポスト

curl -X POST -d data='{"username":"xyz","password":"xyz"}' http://localhost:5000/raw_query 

私はこの単純なjqueryのスクリプトを試すときには:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> 
<title>400 Bad Request</title> 
<h1>Bad Request</h1> 
<p>The browser (or proxy) sent a request that this server could not understand.</p> 

トン:

$.post("http://127.0.0.1:5000/raw_query", '{"username":"xyz","password":"xyz"}', function(data, textStatus) { 
     if(textStatus == 'success') 
     { 
      console.log(data) 
     } 
     else 
     { 
      console.log(textStatus) 
     } 
    }); 

私は400不正な要求エラーを取得しますOの詳細を追加します。これは、要求を実行フラスココードです:

@app.route('/raw_query', methods = ['POST']) 
    def raw_query(): 
    data = json.loads(request.form['data']) 
    return jsonify(data) 

私は本当にそれについて考えられる理由を考えることはできませんが、その後、再び、私はJQとかなり新人だので、おそらく私は」何か不足しています...どんな助けも大いにありがとうございます

答えて

0

問題は、パラメータ名dataを送信していないということです。 data POSTパラメータの値ではなく、生のパラメータとしてJSON文字列を送信するだけです。

$.post("http://127.0.0.1:5000/raw_query", { 
    data: '{"username":"xyz","password":"xyz"}' 
}, function(data, textStatus) { 
if(textStatus == 'success') 
    { 
     console.log(data) 
    } 
    else 
    { 
     console.log(textStatus) 
    } 
}); 
+0

、私は単なる文字列が同じようにフォーマットされていることを明確にする例では、このように書きました。 btw、同じ問題、400のエラーは永続的です。 – darkpirate

+0

私は 'タイプを忘れました:" POST "'、今すぐ試してください。 – Barmar

+0

気にしないで、私は元の 'curl'コマンドで' data = 'を見ませんでした。実際に動作する – Barmar

1

以下の例のようにコードを少し変更してください(これはテストしていません)。フォーマットあなたのようなdataA plain object or string that is sent to the server with the request):私は、JSONの文字列化を使用

$.post("http://localhost:5000/raw_query", {data:JSON.stringify({username:"xyz",password:"xyz"})}, function(data, textStatus) { 
     if(textStatus == 'success') 
     { 
      console.log(data) 
     } 
     else 
     { 
      console.log(textStatus) 
     } 
    }); 
+0

と書くこともできます。これはJSONではなくURLエンコード形式で送信します。 – Barmar

+0

@Barmarはいあなたは正しいです、それはjsonとして送られなければなりません。 –

関連する問題