【问题标题】:Make multiple AJAX request using the same session使用同一会话发出多个 AJAX 请求
【发布时间】:2014-10-26 18:38:15
【问题描述】:

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


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

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

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

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

【问题讨论】:

  • 一切皆有可能。您能否与我们分享一些有助于澄清问题所在的代码?

标签: php ajax angularjs session laravel-4


【解决方案1】:

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

你也可以把hash值放在sessionSorage中,在angular httpInterceptor中做一些检查逻辑,不过这样比后端更脆弱

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    相关资源
    最近更新 更多