1

サーバー側でリクエスト データを取得できません。私はウェブコードに関しては初心者ですので、ご容赦ください。これが私の(簡略化された)コードです:

html

<form id="form" action="http://localhost:8080/report" enctype="multipart/form-data" method="POST">
    <div name="navigation-bar" id="navigation-bar">
        <input type="submit" value="Post" onclick="post()" />
    </div>
 </form>

js

function post() {
    $.post("http://localhost:8080/report",
            {"id": 1},
            function(data) {
                alert(data);
            },
            "json");
}

パイ

@route('/report', method='POST')
def report():
    payload = request.json
    return payload

ペイロードは常に None です。jQueryで送信するときにデータを取得する正しい方法は何ですか?

4

1 に答える 1

4

データ型をに設定すると、応答"json"を解釈する方法のみがjqueryに通知され、要求の形式は変更されず、送信されます。application/x-www-form-urlencoded

ただし、bottlejson 処理は、 の正しいコンテンツ タイプを使用してリクエストが送信された場合にのみ機能するapplication/jsonため、それを使用する場合は、リクエストのコンテンツ タイプを手動で設定し、リクエスト データを json にエンコードする必要があります。

function post() {
    $.ajax({
        url: "/report",
        type: "POST",
        data: JSON.stringify({"id": 1}),
        contentType: "application/json",
        dataType: "json",
        success: function(data) {
            alert(data);
        }
    });
}

ただし、これは JavaScript を使用した送信でのみ機能します。通常のフォーム送信は機能しません。つまり、送信ボタンを通常のボタンに変更するか、oncklick が false を返すようにする必要があります。

于 2013-05-06T10:17:43.587 に答える