gpt4 book ai didi

extjs - 试图捕捉 302 状态 EXT js

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

我是 EXTJS 的新手,遇到了一个问题,
这是我的商店

someStore = new Ext.data.JsonStore({

root: 'results',
proxy: new My.HttpProxy({
url: '/cityList',
method: 'POST'
}),
fields: ['id','name']
});

当我得到和 ID 时,我需要通过 ID 重新加载商店
someStore.reload({params:{someId:someId}});

如果我使用 Ext.data.HttpProxy,它可以正常工作,但我需要
捕捉 302 并做一些处理它,
My.Ajax = {

proxyRequest: function(o){
this.cbOutSide = o.callback;
o.callback = this.cb;
Ext.Ajax.request(o);
}...
cb: function(options, success, response) {
....
if (response.status == 200) {
var resObj = Ext.util.JSON.decode(response.responseText);
this.cbOutSide(resObj);
}
if (response.status == 302) {
Ext.Msg.show({title: '...',msg: 'Time OUT!',
buttons: Ext.Msg.OK, icon: Ext.MessageBox.ERROR});
}
}
};

并且
My.HttpProxy = Ext.extend( Ext.data.HttpProxy, {

doRequest : function(action, rs, params, reader, cb, scope, arg) {

....
if(this.useAjax){

Ext.applyIf(o, this.conn);
if (this.activeRequest[action]) {
}
this.activeRequest[action] = **My.Ajax.proxyRequest(o);**

问题是我得到了我需要的数据的响应,但 store 没有重新加载数据.. 可能是 JsonStore 有特定的回调?

最佳答案

看起来你过于复杂了:

  • 200 是成功之一
  • 302 是故障之一

  • My.Ajax = new Ext.Ajax.request ( {
    url: 'foo.php',
    success: function ( f, a ) {
    // a.response.status == 200, or 304 (not modified)
    var resObj = Ext.util.JSON.decode ( response.responseText );
    this.cbOutSide ( resObj );
    },
    failure: function ( f, a ) {
    if ( a.response.status == 302) {
    Ext.Msg.show ( { title: '...',msg: 'Time OUT!',
    buttons: Ext.Msg.OK, icon: Ext.MessageBox.ERROR } );
    }
    },
    headers: {
    'my-header': 'foo'
    },
    params: { foo: 'bar' }
    } );

    关于extjs - 试图捕捉 302 状态 EXT js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4933090/

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