1

私のajaxコード:

$.ajax({
        type: 'POST',
  url: URL + "xyz/" ,
  data: {"email": email},
  success: function(data) { 
   alert('hello')
    },
     dataType: "json",
     });

Python +ボトルフレームワークの私のハンドラー:

def index():
    if request.POST == XMLHttpRequest:
        email = request.GET.get('email')
        response.COOKIES['email'] = email
        if check_email(email): //a method written for checking email
     return some template
        else:
            return False //here i want to return some error message to ajax. How to 

やれ?そして、ajaxでエラーをキャッチする方法。

スローエラー: NameError("グローバル名 'XMLHttpRequest' が定義されていません",) ボトルはそれをサポートしていますか?

4

3 に答える 3

2

2つのこと。まず、XMLHTTPRequestであるかどうかを確認しようとしている理由がわかりません。データがPOST経由で送信されたかどうかを確認するだけです。また、POSTを介して送信しているように見えますが、GETを介して取得しようとしています。試す:

def index():
    if request.method == "POST":
        email = request.POST['email']
        response.COOKIES['email'] = email
        if check_login(email):
     return some template
        else:
            return False
于 2010-11-30T21:05:58.000 に答える
0

Pythonで「XmlHttpRequest」をチェックするのは意味がありません。これはブラウザ機能の一部を囲むJavascriptラッパーであり、Pythonが知っていることや気にすることは何もありません。

POSTがAjaxからのものであることを本当に確認する必要がある場合は、リクエストヘッダーを確認できます。jQueryは、他のJSフレームワークと同様に、常にHTTP_X_REQUESTED_WITHヘッダーを設定します。実際、リクエストデータにアクセスするためのBottleドキュメントにその正確なヘッダーを使用する例があります。

于 2010-11-30T21:40:34.387 に答える
0

通常の 404 または 500 応答を返すだけです。Web ブラウザはそれを十分に認識しており、javascript コードで定義されたエラー コールバックを呼び出します。

jQueryの場合、コールバックはグローバルだと思いますが、jquery-fuが弱いのでわかりません。

于 2010-11-30T20:49:21.480 に答える