该kendoUI网格使用HTTPGET请求一个AJAX请求时更新数据。 (http://www.kendoui.com/documentation/asp-net-mvc/helpers/grid/ajax-binding.aspx)服务器返回一个JSON的结果,而且,为了得到它的工作,我们需要使用下面的代码:
return Json(Result, JsonRequestBehavior.AllowGet);
,没有工作得很好,但它是一个安全漏洞(这就是为什么微软让我们把“AllowGet”在那里)。
返回JSON的安全的方法是在HttpPost,但kendoui电网不允许这样做。
我想用kendoui网格。 是否有使用HTTPGET的方式,返回JSON,并做到安全?
谢谢!
如果您使用的是剑道电网的MVC包装,这将不会发生。 有网格配置,使因为这个ASP.NET MVC行为POST请求。 请确保你已经包括kendo.aspnetmvc.min.js
虽然。 更多信息可以在找到的文档 。
剑道数据源使用使用Ajax时默认使用GET,但它是可以通过定义传输设置后使用POST。
下面是代码的在缩短版本Telerik的剑术CRUD例如使用交。
<script>
$(function () {
$("#grid").kendoGrid({
toolbar: ["create", "save", "cancel"],
dataSource: {
schema: {
model: {
id: "ProductID",
fields: {
ProductID: { editable: false, nullable: true },
ProductName: { validation: { required: true } },
UnitPrice: { type: "number", validation: { required: true } }
}
}
},
transport: {
create: {
url: "Products.svc/Create",
contentType: "application/json; charset=utf-8",
type: "POST"
},
read: {
url: "Products.svc/Read",
contentType: "application/json; charset=utf-8",
type: "POST"
},
parameterMap: function(data, operation) {
if (operation != "read") {
return JSON.stringify({ products: data.models })
}
}
}
}
});
});
</script>