2016-04-19 4 views
1

Ich habe überall für Stunden gesucht und kann keine Lösung finden, die für mich arbeiten wird. Ich habe ein einfaches HTML-Formular, das 3 Formulareingaben erhält und die Daten an die @ POST-Methode eines Webdienstes senden muss. Nach der Erstellung zeigt der Web-Service die aktualisierte Liste an. Kann mir jemand sagen, was ich falsch mache?Senden von Formulardaten zu erholsamen Web-Service @ POST-Methode mit Jquery und Ajax

poll.html

<script> 

    function myFunction() 
    { 
     data = $(this).serialize(); 

     $.ajax({ 
      url:   'http://localhost:8080/places3/resourcesC/create', 
      method:  'POST', 
      dataType: 'text', 
      data:  data, 
      success:  function() { alert("Worked"); }, 
      error:  function(error) { alert("Error"); } 
     }); 
    } 

    </script> 

    </head> 
    <body> 
    <form onsubmit="myFunction()"> 

     <p>City: <input type="text" name="city" /> </p> 
     <p>POI1: <input type="text" name="poi1" /> </p> 
     <p>POI2: <input type="text" name="poi2" /> </p> 
     <input type="submit" value="Submit" /> 


    </form> 

@POST Methode des Web-Service

@POST 
@Produces({MediaType.TEXT_PLAIN}) 
@Path("/create") 
public Response create(@FormParam("city") String city, 
      @FormParam("poi1") String poi1, 
     @FormParam("poi2") String poi2) { 
checkContext(); 
String msg = null; 
// Require both properties to create. 
if (city == null || poi1 == null || poi2 == null) { 
    msg = "Property 'city' or 'poi1' or 'poi2' is missing.\n"; 
    return Response.status(Response.Status.BAD_REQUEST). 
             entity(msg). 
             type(MediaType.TEXT_PLAIN). 
             build(); 
}  
// Otherwise, create the Place and add it to the collection. 
int id = addPlace(city, poi1, poi2); 
msg = "Place " + id + " created: (city = " + city + " poi1 = " + poi1 + " poi2 = " + poi2 + ").\n"; 
return Response.ok(msg, "text/plain").build(); 
} 
+0

Was passiert derzeit? Funktionieren die Erfolgs- oder Fehlerfunktionen? Irgendwelche Fehler in der Konsole? –

+0

Es warnt "Fehler" – Jeff

+0

Es sollte keinen Fehler melden. Es sollte das Formular senden, bevor die Ajax-Anforderung gelöst wird. – Quentin

Antwort

0

Ich würde versuchen, das Formular einen Namen wie myform dann in Ihrem jquery etwas geben wie:

var data = $ ("# myform"). serializeArray();

Dann übergeben Sie die Datenvar im Ajax-Befehl.

Das funktioniert perfekt für mich.

+0

Dies funktioniert nicht für mich – Jeff

Verwandte Themen