У меня есть гибридное приложение angular / angularJS, которое, кажется, хорошо работает, в основном просто оболочка для angularjs. В настоящее время мы не используем какие-либо угловые компоненты или сервисы, логика all все еще существует в angularjs.
В качестве шага к переходу на angular я пытаюсь написать новый компонент для отображения некоторых данных, но обнаруживаю, что при выполнении http-запросов он, похоже, не использует тот же сеанс, что и существует под angularjs. точно такой же http запрос под angularJS работает просто отлично, но под Angular я больше не аутентифицируюсь. Вход / аутентификация происходит в соответствии с логикой AngularJS, но поскольку angularjs и angular после компиляции фактически являются одним и тем же «приложением», я не уверен, как это не работает.
Почему это так и как я могу это исправить? Я понятия не имею, какую информацию / код полезно увидеть в этом сценарии, поскольку я не совсем уверен, что здесь даже не так.
Это в моем constructor
для углового компонента:
private _listHealthDataUrl: string = "http://localhost:6543/rpc/json/health/get_health_entries";
getData(): Observable<IHealthResponse> {
return this.http.post<IHealthResponse>(this._listHealthDataUrl, {}, {})
}
И точно такой же запрос сделан из angularJS:
$http({
url: 'http://localhost:6543/rpc/json/health/get_health_entries',
method: 'POST',
data: {}
}
}).then(function (e) {...})
Заголовки запроса, насколько Chrome говорит мне, точно такие же:
Provisional headers are shown
Accept: application/json, text/plain, */*
Content-Type: application/json;charset=UTF-8
Origin: http://localhost:8080
Referer: http://localhost:8080/health
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36
Заголовки запроса относительно того, что сервер, кажется, читает:
{'Origin': 'http://localhost:8080', 'Content-Length': '2',
'Cache-Control': 'no-cache',
'Accept': 'application/json, text/plain, */*',
'Content_Length': '2',
'Referer': 'http://localhost:8080/bloodpressure',
'Content-Type': 'application/json',
'X-Appengine-Country': 'ZZ',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36',
'Pragma': 'no-cache',
'Accept-Language': 'en-US,en;q=0.9',
'Host': 'localhost:6543',
'Content_Type': 'application/json'}
Опять же, точно так же, за исключением AngularJS, заголовки включают заголовок session
. Я не уверен, откуда это связано с AngularJS или почему Angular не включает его.