Javascript 无法使用敲除绑定使用durandal JS发送json数据

Javascript 无法使用敲除绑定使用durandal JS发送json数据,javascript,json,knockout.js,durandal,Javascript,Json,Knockout.js,Durandal,我能够获取数据,但无法保存。。当我提醒我发送的数据时,我得到了 要发送的数据{“a”:“a”,“b”:“b”,“c”:“c”,“d”:“d”,“可观察的”“:{“完整的”“:真的}” 我试图用durandal的serialize.serialize()进行序列化,但仍然不起作用。。 我想我无法发送数据,因为我在json数据中获得了可观察的,因此请帮助我解决这个问题。您正在应用ko.toJSON()两次。Durandal中的http插件中的post方法已经在使用了。请看方法代码: var xy

我能够获取数据,但无法保存。。当我提醒我发送的数据时,我得到了 要发送的数据{“a”:“a”,“b”:“b”,“c”:“c”,“d”:“d”,“可观察的”“:{“完整的”“:真的}”

我试图用durandal的serialize.serialize()进行序列化,但仍然不起作用。。
我想我无法发送数据,因为我在json数据中获得了可观察的,因此请帮助我解决这个问题。

您正在应用
ko.toJSON()
两次。Durandal中的
http
插件中的
post
方法已经在使用了。请看方法代码:

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");
         });
因此,您只需执行以下操作:

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

.toJSON
发送数据时会发生什么情况。
observable
键不应该有太大的区别基于,我不能重复你的问题。如果您正在描述这个问题,它可能来自代码的另一部分。另外,您使用的浏览器是什么?如果您使用的是旧版本的KO,您可能还想考虑使用一个新版本的KO。您得到的HTTP代码是什么?但是这里的文档说不应该。嗨,非常感谢你宝贵的重播,我以字符串格式发送json,我首先将其转换为对象,删除了可观察对象,并将该对象作为数据发送到http.post,现在我可以保存..非常感谢,先生,我也做了同样的事情,并且我能够解决这个问题..但在此之前,我删除了json数据中的可观测值,然后我可以保存答案的代码,您也可以在要发送的数据中包含可观测值。方法
ko.toJSON
将打开您的所有观察值。@margabit我认为他的意思是,他如何去除JSON中的可观察值。ko doc说,当使用toJSON函数时,它将从对象中去除可观察值,但这并没有发生。
url ="../save";
http.post(url,xyz).then(function(){
        alert("success");
        console("save was success");
});