我尝试执行自定义标头时遇到此问题并从角度2发出Http GET请求。从Postman执行相同的请求工作正常,但是我在Angular2中得到以下405错误:
OPTIONS http://[somehost.com]/api/v1/admin/account/singin 405 (Method Not Allowed)
API具有GET操作,您可以在标题中传递用户名和密码,并在其标题中返回带有标记的200。以下是我正在使用的代码块的示例:
constructor (private http: Http) {
}
login (userName: string, password: string): Observable<any> {
const endPointUrl = this.baseUrl + '/admin/account/singin';
const headers = new Headers({
'Accept': 'application/json',
'X-Rem-Username': userName,
'X-Rem-Password': password
});
const options = new RequestOptions({headers: headers});
return this.http.get(endPointUrl, options)
.map((response: Response) => {
console.log(response);
return response;
});
}
正如我所提到的,在Postman和WebStorm REST客户端中使用这些标头执行此请求可以正常工作。如果我删除这些&#39; X-Rem&#39;标题我得到401,这是预期的。任何帮助将不胜感激,谢谢。
答案 0 :(得分:1)
试试这个
SET_PROPERTY(TARGET Project_name PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "path")
答案 1 :(得分:0)
答案 2 :(得分:0)
这不是角度应用程序的问题。您的应用和其他api服务器是不同的服务器/域。您应该在服务器中配置跨域允许。每当您通过Web浏览器请求服务器上的任何api时,它首先通过请求OPTION
方法检查跨域允许选项。在postman api中直接发送,没有跨域。