我有一個角色4前端CakePHP 3後端。當我使用我的瀏覽器或Rest Client向API端點發出請求時,我收到響應。但是當我發送角度服務的響應時,它立即顯示在網絡中被取消。Http調用立即取消
起初我以爲這是一個CORS問題。我曾嘗試使用和不使用CORS。我還在我的AppController.php中添加了$this->Security->csrfCheck = false;
,這使我相信本地服務器永遠不會被擊中(沒有斷點)。
所以相反,我正在看等式的角度邊。我試圖設置我的標題,但也不起作用。
import { Headers, Http, Response, RequestOptions } from '@angular/http';
login(loginData) {
const headers = new Headers({'Content-Type': 'application/json'});
const url:string = this.backendUrl + '/auth/login/?';
return this.Http.post(
url,
JSON.stringify(loginData),
{ headers: headers }
).map(
res => res.json
).map(
response => function(response) {
...
},
error => function(error) {
...
}
);
}
我正在從1遷移到4.所以我知道它在Angular 1中使用$ http請求工作。
function login(loginData) {
var = this.backendUrl + '/auth/login/?';
$http.post(url, loginData).then(...);
}
這裏是我的組件,它使用訂閱:
login = function(activeUser):ActiveUser|boolean {
this.isLoggingIn = true;
return this.LoginService.login(activeUser).subscribe(
activeUser => function(activeUser) {
if (activeUser) {
this.activeUser = activeUser;
} else {
this.reset();
}
return activeUser;
}.bind(this)
).complete(
function() {
this.isLoggingIn = false;
}.bind(this)
);
};
默認情況下,角度http observables是冷的。這意味着您的登錄功能只需設置http請求。要真正發起http請求,你必須訂閱observable this.login.subscribe(); – LLai
[Angular 2 http get not get]的可能重複(https://stackoverflow.com/questions/41381200/angular-2-http-get-not-getting) – Alex
這個問題是_slightly_不同,正在進行調用網絡和取消。我的問題似乎是沒有正確設置訂閱方法。另一個問題是完全錯過了根本不會導致任何呼叫的訂閱方法。儘管如此,它幫助我走上了正軌,謝謝! – jrquick