Имам клиент, работещ на Angular + typescript и съм съвсем нов в уеб разработката отпред.
Трябва да изпратя заявка за публикация до php API (който разработих). Заявката пристига правилно до сървъра и сървърът попълва тялото на отговора с правилните данни (аз го проверих сам при отстраняване на грешки в сървъра).
Проблемът е, че когато сървърът отговори, angular promise изпълнява обратно извикване за грешка и данните за отговора са празни. Когато проверявам изпратената заявка в браузъра, тя казва, че е отговорено със статус 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);
}
P.S: също като странична бележка, по някаква причина сървърът ми не може да обработи заявката, ако задам заявката „Content-Type“ на „application/json“ в моя клиент. Това е причината да го задам на 'application/x-www-form-urlencoded'.
P.P.S: Знам, че боли, когато видите функция за получаване, извикана със заявка за публикация, но аз само следвах заповедите на шефа си...
Благодаря предварително!