3

フラスコ アプリケーションをインストールし、フラスコ レストレス API を実行すると、次のコマンドが正常に実行されます。

curl -H "Content-type: application/json" -X POST http://127.0.0.15000/api/menu -d '{"name":"Hello Data"}'

しかし、JavaScriptで同じことをしようとすると失敗します。私はそれをフラスコの落ち着きのないAPIの問題のあるコード行まで追跡し、それに依存しているため、request.dataを出力するデバッグステートメントを追加しました。

動作に最も近い jquery クエリは次のとおりです。

$.ajax({
url:'api/menu', 
type:"POST",

contentType:"binary/octet-stream",

data:{name:'foo'}});

{'name':'foo'} の場合、request.data に「name=foo」が割り当てられます。

コンテンツ タイプ application/json、binary/octet-stream に対して (contentType: "application/json", dataType: "json") のすべての順列を試しましたが、他のすべての場合、データは空白で、request.form は不変の辞書。

私が行方不明であることは明らかですか?

4

1 に答える 1

3

おっと-データ-あなたがしなければならないjsonとして送信されていませんでした

$.ajax({
    url:'http://localhost:5000/api/menu', 
    type:"POST",

    contentType:"binary/octet-stream",
    host:"localhost",
    data:JSON.stringify({"name":"foo"})});

JSON.stringifyに注意してください!!!

于 2012-06-26T23:03:29.577 に答える