将Ajax响应数据加载到knockout数组中

时间:2013-11-16 22:56:45

标签: javascript jquery ajax json knockout.js

我正在尝试将AJAX请求的响应数据加载到knockout可观察数组中。

这是我的AJAX请求:

self.loadAssets = function(projectId) { 
    $.ajax({
      url: "/Assets/getJson/"+projectId,
      dataType: 'json',
      success: function(json_data){
        console.log(json_data);
        alert('success');
        $.each(json_data['getassets'], function(){

            viewModel.addAsset(this.type, this.content, 'user-'+this.type, this.width, this.height, this.top, this.left);
        });
      }
    });

};

在检查器中,我可以看到对“/ Assets / getJson / id”的请求成功(200代码) 但警报永远不会被调用??

我花了一整天时间查看示例和教程,但我无法弄清楚我做错了什么。

我的Json文件如下所示:

{ 
"getassets":[ 
    { 
        "id":1, 
        "type":"Text", 
        "content":"[Your Text]", 
        "width":"200", 
        "height":"100", 
        "top":"0", 
        "left":"0", 
        "selected":true 
    }, 
    { 
        "id":2, 
        "type":"Text", 
        "content":"[Your Text]", 
        "width":"200", 
        "height":"100", 
        "top":"100", 
        "left":"200", 
        "selected":true 
    }, 
    { 
        "id":3, 
        "type":"Text", 
        "content":"[Your Text]", 
        "width":"200", 
        "height":"100", 
        "top":"0", 
        "left":"0", 
        "selected":true 
    }, 
]
}

1 个答案:

答案 0 :(得分:0)

我已经多次看到这种情况发生在内容类型不匹配的情况下。

检查输出的内容类型是否设置为application / json

还要添加到您的ajax调用

contentType: "application/json"