json - 当我尝试加载我的 JqueryDataTable 时出现 Ajax 错误
问题描述
我尝试在此处获取我的 Json:“ https://www.suale.it/Pet/scriptWS.aspx?func=caricaDatatable&Lat=0&lon=0 ”与 JSONP (将其捕获为 < script src 以绕过 CORS)
当它尝试加载我的 jquery 数据表(此处命名为“示例”)它给出了错误,我没有任何线索来理解发生了什么。
我还尝试使用https://jsonlint.com/验证我的 json ,它是有效的!
我需要帮助以更好地了解问题所在
function clickButton() {
//var obj, s
//obj = { table: "products", limit: 10 };
s = document.createElement("script");
s.src = "https://www.suale.it/Pet/scriptWS.aspx?func=LoadDataTable&Lat=0&lon=0"
document.body.appendChild(s);
}
function LoadDataTable(data)
{
$('#example').DataTable( {
"ajax": JSON.stringify(data),
"columns": [
{ "data": "titolo" },
{ "data": "Lat" },
{ "data": "lon" }
]
} );
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<p id="demo"></p>
<input type=button onclick="clickButton()" value="prova">
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th>titolo</th>
<th>Lat</th>
<th>lon</th>
</tr>
</thead>
<tfoot>
<tr>
<th>titolo</th>
<th>Lat</th>
<th>lon</th>
</tr>
</tfoot>
</table>
解决方案
您应该使用Datatables Data选项而不是 Ajax,因为您从更新的 DOM/Javascript 加载它。
当数据源在对象中时,我们可以使用 Datatables columns.data与您的数据对象键进行映射。所以你data : objkey
必须匹配和正确。
function LoadDataTable(data)
{
$('#example').DataTable( {
data: data,
"columns": [
{ "data": "Titolo" },
{ "data": "Latitudine" },
{ "data": "Longitudine" }
]
} );
}
修改后的工作演示:
var dataSet = [{"Titolo":"colonia di formiche","Latitudine":"-33.905635","Longitudine":"151.195331","Icona":"/ICO0.jpg","HTML":null},{"Titolo":"colonia di formiche","Latitudine":"-33.905635","Longitudine":"151.195331","Icona":"/ICO0.jpg","HTML":null},{"Titolo":"colonia di formiche","Latitudine":"-33.905635","Longitudine":"151.195331","Icona":"/ICO0.jpg","HTML":null},{"Titolo":"colonia di formiche","Latitudine":"-33.905635","Longitudine":"151.195331","Icona":"/ICO0.jpg","HTML":null},{"Titolo":"colonia di formiche","Latitudine":"-33.905635","Longitudine":"151.195331","Icona":"/ICO0.jpg","HTML":null},{"Titolo":"colonia di formiche","Latitudine":"-33.905635","Longitudine":"151.195331","Icona":"/ICO0.jpg","HTML":null},{"Titolo":"colonia di formiche","Latitudine":"-33.905635","Longitudine":"151.195331","Icona":"/ICO0.jpg","HTML":null},{"Titolo":"colonia di formiche","Latitudine":"-33.905635","Longitudine":"151.195331","Icona":"/ICO0.jpg","HTML":null},{"Titolo":"colonia di formiche","Latitudine":"-33.905635","Longitudine":"151.195331","Icona":"/ICO0.jpg","HTML":null},{"Titolo":"colonia di formiche","Latitudine":"-33.905635","Longitudine":"151.195331","Icona":"/ICO0.jpg","HTML":null}];
function clickButton() {
/*
I've to comment this and copied response data to dataset variable, so this demo will always working even when the original link dissappeared in future
/*
/*
s = document.createElement("script");
s.src = "https://www.suale.it/Pet/scriptWS.aspx?func=LoadDataTable&Lat=0&lon=0"
document.body.appendChild(s);
*/
LoadDataTable(dataSet);
}
function LoadDataTable(data)
{
$('#example').DataTable( {
data: data,
"columns": [
{ "data": "Titolo" },
{ "data": "Latitudine" },
{ "data": "Longitudine" }
]
} );
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<link href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css" rel="stylesheet" />
<input type=button onclick="clickButton()" value="prova">
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th>titolo</th>
<th>Lat</th>
<th>lon</th>
</tr>
</thead>
<tfoot>
<tr>
<th>titolo</th>
<th>Lat</th>
<th>lon</th>
</tr>
</tfoot>
</table>
推荐阅读
- amp-html - 如何使用 AMP 在输入字段中增加值?
- java - HTMLUNIT - 为请求 Ajax 发送 Cookie 时出现问题
- java - 使用 NumberFormat 时如何在 Eclipse 控制台中显示“£”符号?
- blazor - Blazor 在多个项目中共享 css 样式表和 svg
- css - 如何在 Sublime Text 中删除 CSS 文件中的绿色建议框?
- javascript - 使用键值对填充嵌套数组
- .net - 什么决定了 Visual Studio 2019 中 .NET 框架的默认版本?
- c# - 如何从控制器中的 DropDownListFor 获取 MvcHtmlString
- c++ - 更改 clang 默认 c++-version (mode)
- c# - C# EF Core 为模型添加了新功能