0

jqueryを使用して次のajax投稿があります:

$.post("/login", {}, function(data){
    alert("yolo");
});

これはボタンのクリックによってトリガーされ、「/ login」がサーバーにマップされます(Bottleを使用)。

@route('/login', method='POST')
def login():
    return "something"

私が直面している問題は、コールバックが呼び出されず、代わりに「何か」が本文に含まれているhtmlページが返されることです。

サーバーの応答を新しいHTMLページではなくデータとしてブラウザに処理させるにはどうすればよいですか?

4

1 に答える 1

1

タグ内の送信ボタンの$.postようなものでトリガーしていると思われます。この場合、フォームは標準の送信を行い、サーバーによって問題のアクションにリダイレクトされます。これを防ぐ (そして代わりに ajax を発生させる) には、ブラウザーのデフォルトのフォーム送信動作を防ぐ必要があります。これは次のように簡単に実行できます。.click<form>

 $('#IDofYourForm').submit(function(e){ e.preventDefault(); });
于 2012-07-17T03:06:51.517 に答える