Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。 注意下后半句话,也就是说只要你访问web服务器,会自动把cookie信息带过去,无需你做多于的操作。 我们是后台在登录的时候直接把Token写在cookie中的,下次请求的时候不用做多余的操作,直接就会把cookie带过去,后台解析就行,Angular2 不用做其他的与Cookie相关的操作。我们底层的网络访问代码如下: import {Injectable} from "@angular/core"; import {Headers, Http, RequestOptions} from "@angular/http"; @Injectable() export class HTTPClient { private getWebServiceUrl: string; constructor(private _http: Http) { this.getWebServiceUrl = 'https://xxx.com/'; } public requestPost(requestUrl, requestJson) { const body: string = JSON.stringify(requestJson); const header: any = new Headers({'Content-Type': 'application/json'}); const options: any = new RequestOptions({headers: header}); return this._http.post(this.getWebServiceUrl + requestUrl, body, options); } } 中间层的Service如下: import { Injectable } from '@angular/core'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/observable/throw';//这句一定要加上,angular2教程中少了这句,实际项目中代码会出错的。 import 'rxjs/add/operator/catch'; import 'rxjs/add/operator/map'; import { HTTPClient } from '../../core/http-client'; @Injectable() export class XXXXXService { private url='https://XXX/com'; constructor(private httpClient: HTTPClient) { } getXXXXList(request) { return this.httpClient.requestPost(this.url, request) .map(response => response.json()) .catch(this.handleError); } private handleError(error: Response | any) { const body = error.json() || ''; return Observable.throw(body); } }
注意下后半句话,也就是说只要你访问web服务器,会自动把cookie信息带过去,无需你做多于的操作。
我们是后台在登录的时候直接把Token写在cookie中的,下次请求的时候不用做多余的操作,直接就会把cookie带过去,后台解析就行,Angular2 不用做其他的与Cookie相关的操作。我们底层的网络访问代码如下:
中间层的Service如下: