Play 2.x: So stellen Sie eine AJAX-Anfrage mit einem gemeinsamen Button

So habe ich erfolgreich Ajax-Anfragen erhalten, um zu arbeiten, aber ich musste immer ein Formular verwenden, und dann am Ende des Submit-Vorgangs false zurückgeben, damit die Seite nicht aktualisiert wird.

Ich habe auch erst kürzlich mein Javascript in eine separate Datei verschoben, was dazu geführt hat, dass meine @ -Befehle fehlgeschlagen sind. Aus diesem Grund weiß ich nicht, wie ich meine URL auf meine Route einstellen soll?

HTML:

<button id="saveAsDefaultButton">Save as default</button>

Java-Code für das Playframework:

public static Result saveDefaultPhoneForUser(String handset) {
    User currentUser = User.findByName(session("name"));
    currentUser.lastControlledHandset = theHandset;
    currentUser.save();
    return ok();
}

Routen:

POST    /                           controllers.Application.saveDefaultPhoneForUser(handset : String)

Javascript:

$('#saveAsDefaultButton').click(function(evt) {
        $('#errors').hide();
        $.ajax({
            type : 'POST',
            url : "controllers.Application.saveDefaultPhoneForUser",
            data : $('#controlledPhone option:selected').text(),
            dataType : "text",
            success : function(data) {
                //setError('Call succedded');
                //$('#test1').attr("src", data)
            },
            error : function(data) {
                setError('Make call failed');
            }
        });
        return false;
    });

Ich bin mir sicher, dass es einen Weg gibt, dies zu tun. Ich habe einfach kein Glück, etwas zu finden. Jede Hilfe sehr geschätzt.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage