2014-09-02 166 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一些检查逻辑,但是这比后端更脆弱