我有一个角色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