Datatable标头好但是将Datatable连接到Api的主体 - 不返回数据

时间:2016-09-05 23:05:30

标签: jquery asp.net-mvc api datatable asp.net-ajax

这些是我在浏览器中的错误:

无法加载资源:服务器响应状态为404(未找到)

jquery.datatables.js:3406未捕获的TypeError:无法读取未定义的属性“长度”

enter image description here

这是直接的JSON响应:

enter image description here

以下是该页面的来源:

from sqlalchemy import (create_engine, Table, Column, Integer, String, MetaData)
import settings
import sys
try:
    db = create_engine('mysql://daniel:dani@localhost/test')
    db.connect()
except:
    print('opps ', sys.exc_info()[1])

1 个答案:

答案 0 :(得分:1)

您好我尝试了一个简单的演示,它似乎工作正常,但我没有使用您的数据,所以可能是JSON格式的问题。只有我做的不同的是使用单引号并完全限定网址 - 所以请尝试(例如url: "http://localhost:60241/api/bmfixtures"

示例(已更改链接中的数据等等,以便您了解):

@{
    ViewBag.Title = "Fixtures";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Fixtures</h2>

<table id="bmfixtures" class="table table-bordered table-hover">
    <thead>
        <tr>
            <th></th>
            <th>id</th>
            <th>type</th>
            <th>text</th>
            <th></th>
        </tr>
    </thead>
    <tbody></tbody>
</table>

@section scripts
{
    <script>

        $("#bmfixtures").DataTable({
            ajax: {
                // Replace below line with: url: "http://localhost:60241/api/bmfixtures", (in your version)
                url: "http://api.scb.se/OV0104/v1/doris/en/ssd",
                dataSrc: ''
            },
            columns: [
                {
                    data: 'id',
                    render: function (data, type, bmfixture) {
                        return "<a href='/bmfixtures/edit/" + bmfixture.id + "'>" + bmfixture.id + "</a>";
                    }
                },
                { data: 'id' },
                { data: 'type' },
                { data: 'text' },
                {
                    data: 'id',
                    render: function (data) {
                        return "<button class='btn-link js-delete' data-bmfixture-id=" + data + ">Delete</button>";
                    }
                }
            ]
        });
    </script>
}