2010-11-23 74 views
1

期間電網狀態的cookie我有一個ExtJS的電網有以下:沒有看到ExtJS的Ajax請求

//初始化狀態管理

Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); 

//設置狀態ID

stateful:true,  
stateId:'Vehicle-grid', 

我能夠在正常的HTTP請求上獲取cookie。 當我嘗試發送一個jQuery ajax請求,雖然我沒有看到cookie服務器端。 我看到的只是jsessionid。

我錯過了什麼。

如果需要,我可以粘貼整個代碼,但我只是想知道我是否缺少一些關於如何實現這一切的基礎知識。

感謝, 伊恩

PS - 在後端我有這樣的代碼(Grails的控制器):

def allCookies = request.cookies; 
for (c in allCookies) { 
    println "\n"+c.name+"\n"; 
} 

我只得到JSESSIONID打印。

回答

0

看起來像我想出來的。

我愚蠢地沒有意識到cookie只在網格上的某些事件被觸發後才設置,而不是在初始化時設置,與常規請求和ajax請求無關。

無論如何感謝您幫助McStretch。

0

你想用ExtJS發送一個ajax請求,而不是通過jQuery。 jQuery對固有的ExtJS的有狀態變量/對象一無所知(它們是兩個不同的JavaScript庫),所以cookie不會像你期望的那樣處理。我假設您提到的正常HTTP請求是由ExtJS處理的,這就是您看到期望的cookie行爲的原因。

這裏有一個如何在火中的ExtJS Ajax請求的例子:

// Basic request 
Ext.Ajax.request({ 
    url: 'foo.php', 
    success: someFn, 
    failure: otherFn, 
    headers: { 
     'my-header': 'foo' 
    }, 
    params: { foo: 'bar' } 
}); 

更多信息可以在API Documentation找到。

+0

感謝您的迴應,但是當我的意思是一個普通的HTTP請求時,我的意思是正常提交​​表單並刷新頁面(而不是AJAX)。所以我不明白爲什麼我會使用ExtJS來執行AJAX調用或jQuery。應該創建cookie並將其存儲在客戶端系統中? – Ian 2010-11-24 02:52:07

+0

你正在通過ExtJS或HTML進行表單提交嗎?你有沒有嘗試使用ExtJS的ajax請求? – McStretch 2010-11-24 03:26:15