Я пытаюсь подключиться к уже работающему серверу RestAPI, разработанному на PHP (фреймворк CakePHP);я пытаюсь выполнить простое действие входа в приложение Angular 7, и в случае успеха я продолжу реализацию.
Это код вызова приложения Angular:
constructor(protected cli: HttpClient) {
this.tablet_couple = new TabletCoupleModule();
}
ngOnInit() {
this.cli.get('http://work.local/grai/api-angular/api/v1/tablet_couples/1.json')
.subscribe(
data => { console.log(data) }
)
this.cli.post('http://work.local/grai/api-angular/api/v1/tablet_couples/login.json',{
username: 'xxxxxxxx',
passoword: '123456789',
})
.subscribe(
data => { console.log(data) }
)
}
Фактическая проблемаявляется то, что вызов GET
работает нормально, но вызов POST
все еще не работает.
Я уверен, что REST API работает правильно, потому что, если я использую инструмент, такой как Бессонница, ответ будет правильным для обоих вызовов,
Я пытаюсь выяснить, почему, но проблема заключается в том, что каждый раз реализация CORS:
Я пытаюсь заставить заголовки в Cakephpкак вы можете видеть выше, но все еще не работает.
public function beforeFilter(\Cake\Event\Event $event)
{
parent::beforeFilter($event);
if($this->request->is('OPTIONS')) {
$this->response->header('Access-Control-Allow-Origin','*');
$this->response->header('Access-Control-Allow-Methods','*');
$this->response->header('Access-Control-Allow-Headers','Content-Type, Authorization');
}
else {
$this->response = $this->response->withHeader("Access-Control-Allow-Origin","*");
$this->response = $this->response->withHeader("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept");
$this->response = $this->response->withHeader("Access-Control-Allow-Methods","*");
}
}
ОБНОВЛЕНИЕ 1
Я нашел библиотеку для интеграции CORS с cakephp: cakephp-cors
Эта помощь, но у меня все еще есть проблема: я не могу использовать Rest API, если они не находятся в одном домене (хорошо CORS), но мне нужно.
ЕСЛИ яразверните приложение и поместите мое угловое приложение в тот же домен, в котором оно работает;но я хочу развернуть приложение, которое может получить доступ к удаленному API REST.
Есть предложения?