質問

ないことの付き合い方"について考えるタイトルの問題をもたらしていました。知っていったほうがいいと思うよっAJAX通話すべて間違ったコミュニケーションこのようになっている現在、私が使っているASP.NET MVCバックエンドによる方法):

使ってい jQuery.ajax 投稿データにアクション、荷重をうまコンパイルしようとしたところにします。では基本的に提供する一部のデータにアクションは、一部のHTMLです。

ということかを創りたかった、Ajaxの通話ることが検証されます。どうやっていけばいいですか?に検証エラーメッセージ?例えば、Ajaxログインです。ユーザが検証できませんので、そういったでしょう...るだけでなくやっています。

さん、ナイーブ、んかっ右のソリューションです。

"と彼は話します。

役に立ちましたか?

解決

すべての

まず、あなたはAJAX呼び出しは、あなたのスクリプトで使用することを計画している(して使用することにより、私はdivでそのデータを表示し、その後、より複雑な何かを意味)データを返したい場合、あなたはおそらくJSONデータを返す代わりにHTMLすべきですサーバーから。 JSONは、実際にはJSでそれが受信される瞬間を使用することができるように、JSのオブジェクトである。

あなたはデータすなわちを返すので、もします。

{id: 1, status: 'ok'}

あなたは、そのデータを使用するには、このようなものを使用することができます。

$.ajax({
    url: "your/script/url",
    type: "POST",
    data: {login : 'foo', pass: 'bar'}, // whatever the data is
    dataType: "json",
    success: function(data){
        if (data.status === 'ok') {
            console.log('success');
        } else {
            console.log('error');
        }
    }

});

他のヒント

する必要がありま戻り、複数の情報に応じます。幸い、で行うことができます簡単にJSONを使う場合は、jQuery自動的に対応でき、とてもおいしく頂けました。かでの対応タイプはjson.のオブジェクトにあるこのおajaxコールバック関数が含まれるすべての必要なデータとしての性格が異なります。

いるのは癖に復してステータスコードは"成功"または"失敗"とはajax、コレクションはエラーが発生します。 この国連環境計画(unep 詳したいとおもいます

デジタル化できなかった理由はそのajax通話は常に基本的に"成功"いない場合はサーバ実なリクエストを処理すと、返される不レスポンスのhttpステータスコードです。た場合の結果を要求さんは、このバリデーションエラーがサーバーのものを返します何らかのテキスト対応、そしてajaxの通話は依然として成功したものの、アプリケーションの操作に失敗しました。

なので、アクションメソッドではなく、帰国htmlデータアクションの結果、ご返されたオブジェクトのようになります:

public class AjaxResponse
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="AjaxResponse"/> class.
        /// This creates an AjaxResponse that by default indicates SUCCESS.
        /// </summary>
        public AjaxResponse()
        {
            Success = true;
            Data = new List<object>();
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="AjaxResponse"/> class.
        /// This creates an AjaxResponse that indicates FAILURE.
        /// </summary>
        /// <param name="exception">The exception.</param>
        public AjaxResponse(Exception exception)
            : this()
        {
            Success = false;
            Errors = new [] { exception.Message };
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="AjaxResponse"/> class.
        /// This creates an AjaxResponse that indicates SUCCESS.
        /// </summary>
        /// <param name="data">The data.</param>
        public AjaxResponse(object data)
            : this()
        {
            Data = data;
        }

        /// <summary>
        /// Gets or sets a value indicating whether this <see cref="AjaxResponse"/> is success.
        /// </summary>
        /// <value><c>true</c> if success; otherwise, <c>false</c>.</value>
        public bool Success
        {
            get; set;
        }

        /// <summary>
        /// Gets or sets the data.
        /// </summary>
        /// <value>The data.</value>
        public object Data
        {
            get; set;
        }

        /// <summary>
        /// Gets or sets the errors.
        /// </summary>
        /// <value>The errors.</value>
        public string[] Errors
        {
            get; set;
        }
    }

このままでは、javascriptオブジェクトproperties"があります。成功",".データ"や".誤差".

シンプルな検証コードが人口の誤配列のすべての誤差の検証であるというおajaxコールバック機能

  1. が定める利用目的の呼び出しのために成功したセットに"失敗".

  2. すべての に関連するエラーの文字列です。

なにができることで簡単にこのようなパターンのアクション方法:

    try
    {
        instance.Validate();
        return Json(new AjaxResponse(myHtmlData));
    }
    catch(Exception ex)
    {
        var response = new AjaxResponse(ex);

        // Get your validation errors here, put them into
        // your ajax response's Errors property.

        return Json(response);
    }

私はは、これと同じような状況についてブログしました。。多分それは同様にあなたの状況のお手伝いをします。これは、カスタム例外クラスとエラーが返されます例外action属性を持っていることについて、基本的です。だから、successコールのerror$.ajaxオプションを使用することができます。これは私の意見では、それを行うための正しい方法です。

$.ajaxコールは、成功だけでなく、エラー応答を処理するための機能を提供します。いつもあなたがクライアント上でチェックする必要があり、エラーフラグを設定して成功を返す必要がありません。

るか、というと分からないと思いまったくわか?も例の検証のメッセージのエラーになる仕事は次のように:

  1. ユーザがボタンにリンクをどの原因となるアクション
  2. るasynchronouseポストを行い、サーバー、送信、ユーザidを認識しておく必要があり安全こちら)
  3. サーバに必要な検証を行い、回答を送り返す("XML、Json、直接メッセージとして符号化されたHTML)
  4. のクライアント側での対応にJavaScriptコードまざまな取り組みが認められ、適切にそのページ

い役立っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top