session_id каждый раз разный, потому что сессия каждый раз стартует заново. Это из-за того, что при CORS запросах куки (в том числе сессионные) не передаются по дефолту. Чтобы передавались, нужно 1) у XMLHttpRequest установить withCredentials = true и 2) в Access-Control-Allow-Origin явно указать домен, с которого разрешён запрос, "*" не работает из соображений безопасности.