无法使用Duockal JS使用Knockout Binding发送json数据

时间:2013-08-31 14:33:26

标签: javascript json knockout.js durandal

var   xyz=  { 
              a: ko.observable(),
              b: ko.observable(),
              c: ko.observable(),   
              d: ko.observable()

           };
        function setupControlEvents()
    {
        $("#save").on("click",handleSave);                    
    }

    function handleSave()
    {

        var data = ko.toJSON(xyz);
        //alert("data to send "+data);
        //var d = serializer.serialize(data);
        url ="../save";
    http.post(url,data).then(function(){
            alert("success");
            console("save was success");
         });

我能够获取数据但无法保存..当我提醒我发送的数据时,我得到了这个 要发送的数据{“a”:“A”,“b”:“B”,“c”:“C”,“d”:“D”,“ observable ”:{““:真}}

我试图用durandal的serialize.serialize()序列化,但仍然无法正常工作.. 我想我无法发送数据,因为我在json数据中得到 obserbvable 所以请帮助我解决这个问题。

1 个答案:

答案 0 :(得分:2)

您正在申请ko.toJSON()两次。来自Durandal的post插件的方法http已经在做了。看一下方法代码:

post:function(url, data) {
        return $.ajax({
            url: url,
            data: ko.toJSON(data),
            type: 'POST',
            contentType: 'application/json',
            dataType: 'json'
        });
    }

所以你只需要这样做:

url ="../save";
http.post(url,xyz).then(function(){
        alert("success");
        console("save was success");
});