如何解决DataTables警告,无效的JSON响应
我无法从数据表中生成任何数据。它在localhost上运行良好,但是现在该站点托管在IIS上,但我收到无效的JSON响应。
我已经启动了开发工具,并在“网络”标签中获得了以下信息
Request URL: http://odgh-webapp-uat/masks?_=1604435258024
Request Method: GET
Status Code: 200 OK
Remote Address: 10.146.16.194:80
Referrer Policy: strict-origin-when-cross-origin
Content-Type: text/html; charset=utf-8
Date: Tue,03 Nov 2020 20:27:36 GMT
Server: Microsoft-IIS/10.0
Transfer-Encoding: chunked
X-Powered-By: ASP.NET
Accept: application/json,text/javascript,*/*; q=0.01
Accept-Encoding: gzip,deflate
Accept-Language: en-GB,en;q=0.9,en-US;q=0.8
Connection: keep-alive
Cookie: .AspNetCore.Antiforgery.6A-HjuGlSgs=CfDJ8FCglAuCLlJGqq2XVQMUUAUSieaecoWLJn7jobDBfMTOjwq6Zt8QUnrQJ7nS_GGmILzcdiyPJZG57YAQjb9R20dqsl9bbTc_mcmCwWDitum3mzfCW6Hz40GleUM8pqCY1ddr0isyCFOTohiI09hlJ4o
Host: odgh-webapp-uat
Referer: http://odgh-webapp-uat/masks/MaskList
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/86.0.4240.111 Safari/537.36 Edg/86.0.622.61
X-Requested-With: XMLHttpRequest
下面是我的Jquery
var dataTable;
$(document).ready(function () {
loadDataTable();
});
function loadDataTable() {
dataTable = $('#DT-load').DataTable({
"ajax": {
"url": "/masks","type": "GET","datatype": "json","dataSrc": "data",},"columns": [
{ "data": "name","width": "20%" },{ "data": "author",{ "data": "isbn",{
"data": "id","render": function (data) {
return `<div class="text-center">
<a href="/MaskList/Edit?id=${data}" class='btn btn-success text-white' style='cursor:pointer; width:70px;'>
Edit
</a>
<a class='btn btn-danger text-white mx-auto' style='cursor:pointer; width:70px;'
onclick=Delete('/masks?id='+${data})>
Delete
</a>
</div>`;
},"width": "40"
}
],"language": {
"emptyTable": "No Data found"
},"width": "100%"
});
}
//Sweet Alert Function
function Delete(url) {
swal({
title: "Are you sure?",text: "Once Delete you will not be able to recover",icon: "warning",buttons: true,dangerMode: true
}).then((willDelete) => {
if (willDelete) {
$.ajax({
type: "DELETE",url: url,success: function (data) {
if (data.success) {
toastr.success(data.message);
dataTable.ajax.reload();
}
else {
toastr.error(message);
}
}
});
}
})
}
我的控制器看起来正确,并且在本地主机上工作正常
namespace MaskFit.Controllers
{
[Route("/mask")]
[ApiController]
public class MaskController : Controller
{
private readonly ApplicationDbContext _db;
public MaskController(ApplicationDbContext db)
{
_db = db;
}
[HttpGet]
public async Task<IActionResult> GetAll()
{
return Json(new { data = await _db.Mask.ToListAsync() });
}
我在这里缺少明显的东西吗?任何帮助表示赞赏
解决方法
您应确保从服务器返回的数据包含如下属性数据:
{
"data": [
{...}
{...}
]
}
否则,您应指定“ dataSrc”:“”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。