2016-05-02 13 views
0

私はまだJQueryを初めて使っていて、$ .ajax()関数の使用には問題があります。 処理のためにコントローラにデータを送信しようとしています。

Jqueryをデバッグすると、ボタンをクリックしたときにajaxが呼び出されるように見えません。

function getGuestInfo() { 
     var phone= $('#phone').val(); 
     $.ajax({ 
      type: "GET", 
      url: "/RequestForms/getGuestInfo.ajx", 
      data: phone, 
      cache: false, 

      success: function(response){ 
       // we have the response 
       window.alert("success"+ response); 
       $('#guestName').html(response); 
       $('#address').val(''); 
       $('#email').val(''); 
       }, 
      }); 
      window.alert("Call"); 
    } 

ボタン:

    <input type="button" value="Call Func" onclick="getGuestInfo()"/> 

コントローラー:

## @RequestMapping(value = "/getGuestInfo.ajx", method = {RequestMethod.GET, RequestMethod.POST}) 
public @ResponseBody String getGuestInfo(
    final RequestContext requestContext, @ModelAttribute Form form) { ## Do something } 

はまた、この場合、私はポストを使用するか、jQueryの関数内でメソッドを呼び出すために取得する必要がありますか?

+0

それは見えない?あなたはあなたのコンソール(F12)をチェックしましたか?あなたは警戒を得ていませんか? –

+0

ブラウザのデベロッパーツールコンソール(おそらくネットワークタブ)を使用して、呼び出しが行われているかどうかを確認します。 – whipdancer

+0

ええ、また私はそれをデバッグするために私のコントローラにいくつかのログを追加しました – Samarland

答えて

0

文字列をデータとして渡すだけで、コントローラがFormオブジェクトを必要としていることを考慮すると、サーバーはおそらく「見つかりません」というエラーを返している可能性があります。あなたがそれらを捕まえることができるように、私はいつもあなたのajax呼び出しにエラーイベントを追加することをお勧めします。正しいデータを渡すためとして

error: function (jqXHR, textStatus, errorThrown) { 
    // Do something here 
}, 

、あなたはおそらくこのような何かをしたいと思う:

var dataToSend = { "phone" : phone }; 

その後にデータを変更します。あなたは "とはどういう意味ですか

data: JSON.stringify(dataToSend), 
+0

エラーイベントを追加すると、エラー(500(ACT))が返されます – Samarland

+0

リソースの読み込みに失敗しました:サーバが500(ACT)のステータスで応答しました – Samarland

+1

サーバがコール中に吹き飛んだり、あなたのコントローラのアクションとそれのために500エラーをスローする。データを渡してFormクラスのインスタンスに変換できるようにする必要があります。 –

関連する問題