gpt4 book ai didi

extjs - 如何从商店回调中获取响应码?

转载 作者:行者123 更新时间:2023-12-04 23:23:57 25 4
gpt4 key购买 nike

我正在尝试处理 session 超时服务器端。
获取 session 超时时,我的服务器用 json 发回响应{success: false}, ContentType: 'application/json', ResponseNo: 408
店铺:

var storeAssets = Ext.create('Ext.data.Store', {
model : 'modCombo',
autoLoad : false,
proxy : { limitParam : undefined,
startParam : undefined,
paramName : undefined,
pageParam : undefined,
noCache : false,
type : 'ajax',
url : '/caricaAssets.json',
reader : { root : 'data' }
}
});

在客户端,我像这样处理回调加载存储:
storeAssets.load({
scope: this,
callback: function(records, operation, success) {
if (!success) { Ext.Msg.alert('Error'); }
}
});

要执行不同的响应,我想更改警报。
所以,如果没有回应。是 408 , 我可以提醒 session expired (等等,管理响应号)。

但我没有找到任何方法来获得响应号。店内回调!

有什么建议?

最佳答案

不幸的是,回调方法没有将服务器响应作为参数传入。这很可能是因为有很多方法可以将数据加载到存储中,而且并非所有方法都会有服务器响应。

您可以覆盖代理的 processResponse 函数以使用操作对象存储服务器的响应,然后在您的回调中访问它。

Ext.define('Ext.data.proxy.ServerOverride', {
override: 'Ext.data.proxy.Server',

processResponse: function (success, operation, request, response, callback, scope) {
operation.serverResponse = response;
this.callParent(arguments);
}
});

然后,获取状态:
storeAssets.load({
scope: this,
callback: function(records, operation, success) {
if (operation.serverResponse.status === 408) {
Ext.Msg.alert('Session expired');
}
}
});

关于extjs - 如何从商店回调中获取响应码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16694012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com