У меня есть клиент, работающий на Angular + typescript, и я новичок в веб-разработке.
Мне нужно отправить почтовый запрос в php API (который я разработал). Запрос поступает на сервер правильно, и сервер заполняет тело ответа правильными данными (я проверял это сам, отлаживая сервер).
Проблема в том, что когда сервер отвечает, угловое обещание выполняет обратный вызов ошибки, а данные ответа пусты. Когда я проверяю отправленный запрос в браузере, он говорит, что на него ответили со статусом 200 OK, но у него пустое тело.
Я попытался вызвать ту же конечную точку API с теми же параметрами через надстройку Firefox Api-requester, и я получаю ответ с правильным телом... почему тогда мой клиент Angular не работает?
Следующий фрагмент кода соответствует моему контроллеру:
vm.query = {
'tx_filtre':'', 'idioma_filtre':'', 'tipus':'', 'id_dimfisica':'', 'tamPag':15, 'numPag':0
};
this.PropietatsService.getPropietats(vm.query)
.then((response: ng.IHttpPromiseCallbackArg<string>) => {
vm.objResult = JSON.parse(response.data);
vm.propietats = vm.objResult.info;
console.log('rebut', this.propietats);
}, (response: ng.IHttpPromiseCallbackArg<string>) => {
//always executes this error function, why????
vm.objResult = JSON.parse(response.data);
});
И это соответствующий код для службы:
getPropietats(query: any): ng.IPromise<ng.IHttpPromiseCallbackArg<string>> {
var config = {
headers : {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
}
};
return this.$http.post("http://localhost:8080/diccionaris/propietat/get",JSON.stringify(query),config);
}
PS: также примечание: по какой-то причине мой сервер не может обработать запрос, если я установил для параметра «Тип контента» значение «application/json» в своем клиенте. Именно по этой причине я установил «application/x-www-form-urlencoded».
P.P.S: я знаю, что это больно, когда вы видите функцию get, вызываемую с запросом на публикацию, но я всего лишь выполнял приказы своего босса...
Заранее спасибо!