2014-09-02 163 views
1

我有一個REST web服務,它根據當前的http會話返回一個散列值。如果我使用瀏覽器打開web服務頁面,我會看到相同的值刷新頁面或在多個選項卡中打開頁面。這是預期的行爲,因爲我在多個請求中使用相同的會話。如果我使用AngularJS的$ http服務執行AJAX請求,則每次都獲得一個不同的值。看起來每個請求都使用不同的會話。我需要獲得與瀏覽器請求相同的行爲,即共享相同會話的多個請求。可能嗎?有關服務器環境使用同一個會話創建多個AJAX請求


更多信息:

服務器端REST Web服務是由Laravel 4.2供電,有一個簡單的RESTful controller返回使用此功能的哈希碼:

public function getCsrf() { 
    return Response::json(array('csrf' => csrf_token())); 
} 

如果我使用瀏覽器瀏覽web服務頁面,總是得到相同的結果(即http://myservice.page/rest/csrf),如果我使用ajax做同樣的事情,我總會得到不同的結果。

+0

一切皆有可能。你能和我們分享一些能夠幫助我們澄清問題的代碼嗎? – 2014-09-02 13:20:10

回答

1

我會在服務器端做:緩存散列值。如果ajax請求進入,我將確定它是否已經與會話/散列值的映射關聯。如果存在,則返回它。

你也可以把哈希值sessionSorage,並做角httpInterceptor一些檢查邏輯,但是這比後端更脆弱