2

我正在尝试POST从提交事件中获取数据。对 REST 服务本身的请求正在运行。REST 服务有两个参数userpassword. 我打印出这两个参数,所以我知道我的视图模型包含数据。如何将参数添加到请求中,服务器端的值为空?

PS。Oracle Jet 基于 KnouckoutJS、JQuery 和其他一些 JS 库构建。

登录.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;
    }
}

登录.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'}"/>
4

1 回答 1

1

你提到那个...

REST 服务有两个参数namepassword.

但是在您的$.ajax通话中,您将数据设置为...

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

我觉得应该是...

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

我不能确定,但​​这种不匹配可能解释了它为什么不起作用。

此外,使用浏览器的网络跟踪来查看您的请求是什么样的。如果您在请求中没有看到您的值,那么它将解释为什么它们没有出现在服务器上。

于 2016-03-22T20:19:35.673 回答