У меня есть гибридное приложение angular/angularJS, которое, похоже, хорошо работает как просто оболочка для angularjs. В настоящее время мы не используем какие-либо компоненты или службы angular, вся логика по-прежнему существует в angularjs.
В качестве шага к переходу на angular я пытаюсь написать новый компонент для отображения некоторых данных, но я обнаружил, что когда я делаю http-запросы, он, похоже, не использует тот же сеанс, который существует под angularjs . Точно такой же http-запрос в angularJS работает нормально, но в Angular я больше не аутентифицируюсь. Вход/аутентификация происходит по логике AngularJS, но поскольку и angularjs, и angular фактически являются одним и тем же «приложением» после компиляции, я не уверен, как это не работает.
Почему это так и как я могу это исправить? Я понятия не имею, какую информацию/код полезно увидеть в этом сценарии, поскольку я не совсем уверен, что здесь вообще не так.
Это в моем constructor
для компонента Angular:
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 не включает его.