У меня есть приложение Angular / Ioni c, которое взаимодействует с Django бэкэндом. Я использую this.http.get()
для связи с этим сервером (на Heroku), а сервер Django должен отправлять текст «ОК». Вместо этого я либо (в зависимости от указанного c использования this.http.get()
) получаю ошибку, где statusText - это текст, который я хочу, либо что-то вроде Object { _isScalar: false, source: {…}, operator: {…} }
My Django code просто:
def make(request, otherParams):
...
return HttpResponse("OK")
Я знаю, что get()
добрался до сервера, потому что сервер запускает определенные вещи при вызове соответствующей функции.
Как мне, из интерфейса Angular, определить, Django Сценарий отправил «ОК» или нет?
(ошибка не из-за какой-либо из различных политик CORS, я установил django -cors-headers)
РЕДАКТИРОВАТЬ : если это уместно, я на Windows P C, тестирую на localhost / Firefox Nightly с Ioni c 5 и Angular 9. Вот мой код внешнего интерфейса, вырезая ненужные биты. То, как я сделал мой запрос GET, не соответствует, попробовав много. Этот предложен в следующем посте, и все еще не работает.
import { Component, OnInit } from '@angular/core';
import { AlertController } from '@ionic/angular';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-submit',
templateUrl: './submit.page.html',
styleUrls: ['./submit.page.scss'],
})
export class SubmitPage implements OnInit {
constructor(public alertController: AlertController, private http: HttpClient) { }
ngOnInit() {
}
//irrelevant variable-getting
save() {
console.log(this.list);
if (this.title == null || this.title == "") {
this.presentAlert("Uncompleted fields", "Please complete the Title field!");
}
else if (this.sub == null || this.sub == "") {
this.presentAlert("Uncompleted fields", "Please complete the Subtitle field!");
}
else if (this.content == null || this.content == "") {
this.presentAlert("Uncompleted fields", "Please complete the Content field!");
} else {
try {
if (this.list.length == 0) {
console.log(this.list);
throw "empty list";
}
//more irrelevance
}
catch{ this.presentAlert("Uncompleted fields", "Please complete the list!"); }
if (temp2) {
this.makePost();
}
}
}
makePost() {
var temp = (<root url> + encodeURIComponent(this.title) + `/` + (this.posterID).toString() + '/' + encodeURIComponent(this.sub) + '/' + encodeURIComponent(this.content) + '/' + this.happy.toString() + '/' + this.angry.toString() + `/` + this.stressy.toString() + `/` + this.energy.toString() + '/' + this.worry.toString());
console.log(temp);
this.http.get(temp).toPromise()
.then(r => console.log('response', r)).catch(error => console.error(error));
}
}