2014-09-02 1 views
1

У меня есть веб-служба REST, которая возвращает значение хэша на основе текущей http-сессии. Если я открою страницу webservice с помощью браузера, я увижу то же самое значение, которое обновит страницу или откроет страницу на нескольких вкладках. Это ожидаемое поведение, потому что я использую один и тот же сеанс по нескольким запросам. Если я делаю запрос AJAX, используя службу $ http от AngularJS, каждый раз получаю другое значение. Кажется, что каждый запрос использует другой сеанс. Мне нужно получить такое же поведение, как запрос браузера, несколько запросов, которые используют один и тот же сеанс. Является ли это возможным?Сделать несколько запросов AJAX, используя тот же сеанс


Более подробная информация о серверной среде:

Сервер стороны REST вебсервис питается от Laravel 4.2, существует простой RESTful controller, что возвращает хэш-код с помощью этой функции:

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

если Я просматриваю страницу webservice с помощью своего браузера. Я получаю всегда тот же результат (то есть http://myservice.page/rest/csrf). Если я делаю то же самое, используя ajax, я получаю всегда разные результаты.

+0

Все возможно. Можете ли вы поделиться с нами некоторым кодом, который поможет выяснить, в чем проблема? –

ответ

1

Я бы сделал это на стороне сервера: кешируйте хэш-значение. Если приходит запрос ajax, я бы определил, если он уже связан с картой значения session/hash. верните его, если он существует.

Вы также можете поместить значение хеш-функции в sessionSorage, и сделать некоторые проверки логики в угловом httpInterceptor, но это более хрупкими, чем бэкэндом

Смежные вопросы