我正在使用Angular 4;我当前的浏览器是启用了CORS的Google Chrome。我正在尝试进行CORS调用,但没有任何反应,也没有显示错误消息。这是我的服务代码。
import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';
@Injectable()
export class FlowLoginService {
constructor(private http: Http) { }
private headers = new Headers({'Content-Type': 'application/json'});
private getTokenURL = 'http://targeturl.com/api/login'; // URL to web api
login(username: string, password: string): Promise<any> {
console.log("executing login");
return this.http
.post(this.getTokenURL, JSON.stringify({username: username, password: password}), {headers: this.headers})
.toPromise()
.then(res => {console.log(res); res.json().data as any})
.catch(this.handleError);
}
private handleError(error: any): Promise<any> {
console.error('An error occurred', error); // for demo purposes only
return Promise.reject(error.message || error);
}
}
在login方法中的return语句之前记录某些内容证明该方法已执行。但是,承诺永远不会返回,查看服务器日志显示它没有收到任何请求,catch语句没有捕获任何错误,浏览器开发控制台也没有提到已经尝试过CORS请求。 我的假设是,因为我正在运行开发服务器,所以请求被提交到“http://localhost:4200/http://targeturl.com/api/login”。 成功提交“http://targeturl.com/api/login”的请求需要进行哪些更改。