2016-03-22 98 views
2

我正在嘗試POST來自提交事件的數據。對REST服務本身的請求正在工作。 REST服務有兩個參數userpassword。 我打印出兩個參數,所以我知道我的視圖模型包含數據。 如何將參數添加到請求中,這些值在服務器端是否爲空?從Oracle提交事件中提交數據Jet

PS。 Oracle Jet基於KnouckoutJS,JQuery和其他一些JS庫構建。

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

在Chrome調試器網絡選項卡中調試您的ajax請求,以查看您是否收到404,200或其他錯誤消息。 – Dandy

回答

1

你提到...

REST服務有兩個參數namepassword

但在你$.ajax電話,設置數據...

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

我覺得應該是...

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

我不能肯定,但不匹配可能會解釋爲什麼它不起作用。

此外,使用瀏覽器的網絡跟蹤來查看您的請求的樣子。如果您在請求中看不到您的值,那麼它可以解釋爲什麼它們不會顯示在服務器上。

+0

謝謝,今天一切正常。參數的名稱實際上是'ser'和'password',改變了問題文本。 – Chris