在Angular2中,如果PUT请求到Node服务器失败并且出现认证丢失的问题,可能是由于请求头中缺少身份认证信息导致的。以下是解决此问题的一种可能方法:
HttpClient
发送PUT请求到Node服务器。首先,确保已经导入了HttpClientModule
,并在Angular模块的imports
数组中引入。import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [
HttpClientModule
],
...
})
export class AppModule { }
HttpClient
。import { HttpClient } from '@angular/common/http';
@Injectable()
export class YourService {
constructor(private http: HttpClient) { }
...
}
HttpHeaders
类来设置请求头。import { HttpHeaders } from '@angular/common/http';
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + yourToken // 根据你的身份认证方式设置
})
};
@Injectable()
export class YourService {
constructor(private http: HttpClient) { }
updateData(data: any): Observable {
const url = 'http://your-node-server-url';
return this.http.put(url, data, httpOptions);
}
}
确保将yourToken
替换为你的实际身份认证值,并将httpOptions
传递给PUT请求。这样,请求头中将包含身份认证信息,并且PUT请求应该会成功。
注意:这只是一种可能的解决方法,具体解决方法取决于你的身份认证方式和服务器端设置。你可能需要根据你的情况做一些调整。