2011-07-27 10 views
2

私はPlay!このjqueryコードを使ってajax投稿、私は警告ボックスにエラーを表示する必要があります。responseTextを使用してAjax中にplay.mvc.results.Errorのメッセージを取得します

$.ajax({ 
type: "post", 
url: "@{removeQuoteToWatch()}", 
dataType : "json", 
data: { 
    'symbol'  : symbol 
}, 
error: function(xhr, ajaxOptions, thrownError){ 


      alert(xhr.responseText); 
    }, 
    success: function(data){ 
      ... 
    } 
}); 

警告ボックスでの出力は次のようになります。

{ 
type: 'play.mvc.results.Error', 
message: 'Can't find symbol : Watch list is empty' 
} 

どのように私は唯一のメッセージ部分を取得することができますか?

あなたがここに

http://api.jquery.com/jQuery.ajax/#jqXHR

を読むことができたようresponseTextが文字列である私は

error: function(xhr, ajaxOptions, thrownError){ 


      alert(xhr.responseText.message); 
     }, 

ような何かをしようと試みたが、それは

おかげで、

+0

:私は、チケットを作成しましたか? – Codemwnci

答えて

3

を働いていません。あなたはJSONとしてそれを解析したい場合は行うことができ

var res = $.parseJSON(xhr.responseText); 
alert(res.message); 

私は個人的に論理的な問題のために500エラーをスローしないことを好むが、通常200 を使用してJSONでリターン・ステータスとユーザー・エラーを提供します。

上記の答えは基本的には正しいですが、それをもっと近く(実際にはそれを再現して)見ると、あなたはプレイフレームワークにバグを見つけたようです。フレームワークは、返すべき

{ "タイプ": "play.mvc.results.Error"、 "メッセージ": "Watchlistempty" }

が返さない間:

{タイプ: 'play.mvc.results.Error'、 メッセージ: 'Watch list empty'}

無効なjsonです。

私は試合をチェックしました!灯台プロジェクトとそれ以前には報告されていないようです。あなたはそれを動作していない...何が起こっていると言うとき

http://play.lighthouseapp.com/projects/57987-play-framework/tickets/1073-templateserror500json-returns-invalid-json#ticket-1073-2

+0

これは動作しません、次の文字列が警告ボックスに表示されます "{ タイプ: 'play.mvc.results.Error'、 メッセージ: '' }" –

+0

ちょうどこれに遭遇し、それを回避することができました'$ {exception?.class.name}"、 "message": "$ {exception?.message?.replace(" "\" "、" \\\ "")} "}' –

関連する問題