Kendo DataSource 捕获服务器响应
Kendo DataSource catch server response
在我的 kendo 数据源 > 传输 > 更新。我想捕获服务器响应状态(参考图片),但是此方法的 none 触发了 alert
。知道为什么吗?
update: {
url: "./getRevenueAccounts.php",
type: "POST",
data: function() {
return {
method: "editRevenueAccounts"
}
},
success: function(e) {
if(e.status == 'duplicate'){
alert('Trigger 1');
}
},
error: function(e) {
if (e.errorThrown == 'duplicate') {
alert("Trigger 2");
}else if(e.status == 'duplicate' ){
alert("Trigger 3")
}
},
complete: function (e) {
if(e.status == 'duplicate'){
alert('Trigger 4');
}
}
},
console.log(e) 屏幕截图
为您的成功功能尝试以下代码:
success: function(e) {
if(e.responseText.status == 'duplicate'){
alert('Trigger 1');
}
},
本质上,您正在查看状态 属性,而您本应查看响应文本 属性 以获取状态(这是该对象上的另一个 属性)。
您需要在更新函数中进行 ajax 调用。
喜欢:
var dataSource = new kendo.data.DataSource({
transport: {
read: function(options) {
/* implementation omitted for brevity */
},
update: function(options) {
// make JSONP request to https://demos.telerik.com/kendo-ui/service/products/update
$.ajax({
url: "https://demos.telerik.com/kendo-ui/service/products/update",
dataType: "jsonp", // "jsonp" is required for cross-domain requests; use "json" for same-domain requests
// send the updated data items as the "models" service parameter encoded in JSON
data: {
models: kendo.stringify(options.data.models)
},
success: function(result) {
// notify the data source that the request succeeded
options.success(result);
},
error: function(result) {
// notify the data source that the request failed
options.error(result);
}
});
}
},
batch: true,
schema: {
model: { id: "ProductID" }
}
});
有关详细信息,请从 telerik 文档中查看:https://docs.telerik.com/kendo-ui/api/javascript/data/datasource/configuration/transport.update
这不是一个很好的应用方法,但它可以用来获取响应。
if(e.responseText=='{"status":"duplicate"}'){
kendo.alert('duplicate data');
}
在我的 kendo 数据源 > 传输 > 更新。我想捕获服务器响应状态(参考图片),但是此方法的 none 触发了 alert
。知道为什么吗?
update: {
url: "./getRevenueAccounts.php",
type: "POST",
data: function() {
return {
method: "editRevenueAccounts"
}
},
success: function(e) {
if(e.status == 'duplicate'){
alert('Trigger 1');
}
},
error: function(e) {
if (e.errorThrown == 'duplicate') {
alert("Trigger 2");
}else if(e.status == 'duplicate' ){
alert("Trigger 3")
}
},
complete: function (e) {
if(e.status == 'duplicate'){
alert('Trigger 4');
}
}
},
console.log(e) 屏幕截图
为您的成功功能尝试以下代码:
success: function(e) {
if(e.responseText.status == 'duplicate'){
alert('Trigger 1');
}
},
本质上,您正在查看状态 属性,而您本应查看响应文本 属性 以获取状态(这是该对象上的另一个 属性)。
您需要在更新函数中进行 ajax 调用。 喜欢:
var dataSource = new kendo.data.DataSource({
transport: {
read: function(options) {
/* implementation omitted for brevity */
},
update: function(options) {
// make JSONP request to https://demos.telerik.com/kendo-ui/service/products/update
$.ajax({
url: "https://demos.telerik.com/kendo-ui/service/products/update",
dataType: "jsonp", // "jsonp" is required for cross-domain requests; use "json" for same-domain requests
// send the updated data items as the "models" service parameter encoded in JSON
data: {
models: kendo.stringify(options.data.models)
},
success: function(result) {
// notify the data source that the request succeeded
options.success(result);
},
error: function(result) {
// notify the data source that the request failed
options.error(result);
}
});
}
},
batch: true,
schema: {
model: { id: "ProductID" }
}
});
有关详细信息,请从 telerik 文档中查看:https://docs.telerik.com/kendo-ui/api/javascript/data/datasource/configuration/transport.update
这不是一个很好的应用方法,但它可以用来获取响应。
if(e.responseText=='{"status":"duplicate"}'){
kendo.alert('duplicate data');
}