2016-03-22 4 views
2

Ich versuche POST Daten von senden Ereignis. Die Anforderung an den REST-Dienst selbst funktioniert. Der REST-Service hat zwei Parameter user und password. Ich drucke die zwei Parameter aus, damit ich weiß, dass mein Ansichtsmodell die Daten enthält. Wie kann ich die Parameter zur Anfrage hinzufügen, die Werte sind auf der Serverseite leer?Daten von einem Submit-Ereignis in Oracle Jet senden

PS. Oracle Jet baut auf KnouckoutJS, JQuery und einigen anderen JS-Bibliotheken auf.

login.js

function homeContentViewModel() { 
    var self = this; 

    self.user = ko.observable("Super"); 
    self.password = ko.observable("Sectret"); 
    self.userInput = ko.pureComputed(function() { 
     return this.user() + " " + this.password(); 
    }, this); 

    self.submitBt = function (data, event) { 
     alert(self.user() +" - " +self.password()); 
     $.ajax({ 
      url: "http://localhost:8080/myservice/rest/application/loginUser", 
      data: {user: self.user(), password: self.password()}, 
      type: 'POST', 
      dataType: 'json', 
      success: function (data, textStatus, jqXHR) { 
       var x = data; 

      } 
     }); 
     return true; 
    } 
} 

login.html

<label for="text-input">User:</label> 
    <input id="text-input" type="text" 
      data-bind="ojComponent: {component: 'ojInputText', value: user}"/> 

<label for="text-input">Password:</label> 
    <input id="text-input" type="text" 
      data-bind="ojComponent: {component: 'ojInputText', value: password}"/> 

    <br/> 

<input id="submit" type="submit" data-bind="click: submitBt, 
     ojComponent: {component: 'ojButton', label: 'Login'}"/> 
+0

Debuggen Sie Ihre Ajax-Anfrage in Chrome-Debugger-Netzwerk-Registerkarte, um zu sehen, wenn Sie 404, 200 oder eine andere Fehlermeldung erhalten. – Dandy

Antwort

1

Sie erwähnen, dass ...

REST-Service verfügt über zwei Parameter name und password.

Aber in Ihrem $.ajax Anruf, stellen Sie Daten auf ...

{user: self.user(), password: self.password()} 

Ich denke, dass ...

sollte
{name: self.user(), password: self.password()} 

ich kann nicht sicher sein, aber das Mismatch könnte erklären, warum es nicht funktioniert.

Verwenden Sie auch das Netzwerk-Tracking des Browsers, um zu sehen, wie Ihre Anfrage aussieht. Wenn Sie Ihre Werte nicht in der Anfrage sehen, würde dies erklären, warum sie nicht auf dem Server angezeigt werden.

+0

Danke, alles funktioniert heute gut. Der Name der Parameter war eigentlich úser'und'password', änderte den Fragetext. – Chris