Angular 如何发送数据(角度2)?
我尝试使用Angular 2通过http请求发送凭据,但Angular 2 http get请求不发送凭据。 我做错了什么Angular 如何发送数据(角度2)?,angular,typescript,xmlhttprequest,httprequest,Angular,Typescript,Xmlhttprequest,Httprequest,我尝试使用Angular 2通过http请求发送凭据,但Angular 2 http get请求不发送凭据。 我做错了什么 var creds = "username=" + this.username + "&password=" + this.password; var headers = new Headers(); headers.append('Content-Type', 'application/x-www-form-urlencoded'); http.get('htt
var creds = "username=" + this.username + "&password=" + this.password;
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
http.get('http://localhost:3000', {
headers: headers,
credentials: creds
})
.map(res => res.json())
.subscribe(
data => this.data(data),
err => this.error(err),
() => console.log('Done')
);
在应用程序配置中,请尝试:
$httpProvider.defaults.withCredentials = true;
因此,您的应用程序配置将如下所示:
angular.module('myappService', [
'fdvService.constants',
]).config(['$httpProvider',function ($httpProvider) {
$httpProvider.defaults.withCredentials = true;
}]);
我认为您希望使用HTTP基本身份验证来访问安全的HTTP资源。因此,您的凭证需要在
授权
标题中设置,如下所述:
createAuthorizationHeader(headers:Headers) {
headers.append('Authorization', 'Basic ' +
btoa('username:password'));
}
getData() {
var headers = new Headers();
this.createAuthorizationHeader(headers);
this.http.get('http://localhost:3000'', {
headers: headers
}).map(res => res.json())
.subscribe(
data => this.data(data),
err => this.error(err),
() => console.log('Done')
}
您可以注意到您的凭据必须是base64编码的
您的请求似乎是跨域的,因此CORS概念适用。有关更多详细信息,请查看此链接:。也就是说我不认为你的问题与CORS有关
我在类中看不到任何凭据
属性
希望它能帮助你,
Thierry尝试此代码,它必须工作:
var creds=“username=“+this.username+”&password=“+this.password;
var headers=新的headers();
headers.append('Content-Type','application/x-www-form-urlencoded');
http.get('http://localhost:3000"信条,{
标题:标题,
})
.map(res=>res.json())
.订阅(
data=>this.data(数据),
err=>this.error(err),
()=>console.log('Done')
RequestOptionsArgs
没有凭据属性:,它是一个头
:,您可以根据此规范设置头:,该凭据属性设置不同的内容,我相信您正在寻找授权
头。