使用相同的会话发出多个AJAX请求

时间:2014-09-02 13:17:30

标签: php ajax angularjs session laravel-4

我有一个REST Web服务,它根据当前的http会话返回一个哈希值。如果我使用浏览器打开Web服务页面,我将看到刷新页面或在多个选项卡中打开页面的相同值。这是预期的行为,因为我在多个请求中使用相同的会话。如果我使用AngularJS的$ http服务进行AJAX请求,我每次都会获得不同的值。似乎每个请求都使用不同的会话。我需要获得与浏览器请求相同的行为,共享同一会话的多个请求。可能吗?


有关服务器环境的更多信息:

服务器端REST Web服务由Laravel 4.2提供支持,有一个简单的RESTful controller使用此函数返回哈希码:

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

如果我使用浏览器浏览网络服务页面,我会得到相同的结果(即http://myservice.page/rest/csrf),如果我使用ajax做同样的事情,我会得到不同的结果。

1 个答案:

答案 0 :(得分:1)

我会在服务器端执行此操作:缓存哈希值。如果ajax请求进来,我会确定它是否已经与会话/哈希值的映射相关联。如果它存在则返回它。

您也可以将hash值放在sessionSorage中,并在角度httpInterceptor中执行一些检查逻辑,但这比后端更脆弱