2016-05-02 2 views
0

Ich bin noch ziemlich neu in JQuery und habe Schwierigkeiten mit der $ .ajax() -Funktion. Ich versuche, Daten zur Verarbeitung an den Controller zu senden.

Debuggen der Jquery, Es sieht nicht aus, die Ajax wird aufgerufen, wenn Sie auf die Schaltfläche klicken.

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"); 
    } 

die Taste:

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

Controller:

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

Auch in diesem Fall sollte ich Post verwenden oder sich die Methode in der JQuery-Funktion aufrufen?

+0

Was meinst du mit " es sieht nicht aus? Hast du deine Konsole überprüft (F12)? Sie erhalten keine Warnung? –

+0

Verwenden Sie die Developer Tools-Konsole in Ihrem Browser, wahrscheinlich die Registerkarte Netzwerk - und schauen Sie, ob ein Anruf getätigt wird. – whipdancer

+0

Ja, habe ich, auch habe ich einige Anmeldung in meinem Controller hinzugefügt, um es zu debuggen – Samarland

Antwort

0

In Anbetracht dessen, dass Sie nur eine Zeichenfolge als Daten übergeben und Ihr Controller ein Formularobjekt erwartet, gibt der Server wahrscheinlich den Fehler "Nicht gefunden" zurück. Ich würde empfehlen, das Fehlerereignis immer zu Ihren Ajax-Anrufen hinzuzufügen, damit Sie sie abfangen können.

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

Wie für die richtigen Daten vorbei, werden Sie wahrscheinlich wollen, so etwas tun:

var dataToSend = { "phone" : phone }; 

dann Ihre Daten ändern:

data: JSON.stringify(dataToSend), 
+0

Hinzufügen des Fehlerereignisses, werfen Sie den Fehler (500 (ACT)) – Samarland

+0

Fehler beim Laden der Ressource: Der Server reagierte mit einem Status von 500 (ACT) – Samarland

+1

So ist Ihr Server entweder in den Anruf gesprungen oder findet nicht die richtige Aktion in Ihrem Controller und einen 500 Fehler deswegen werfen. Sie müssen Ihre Daten übergeben, damit sie in eine Instanz Ihrer Form-Klasse umgewandelt werden können. –

Verwandte Themen