在Angular 2

时间:2017-04-14 11:27:09

标签: angular magento angular-routing angular-services

我试图从Angular 2中调用Magento 2的REST API。

从很长时间面对这个问题,真的需要修复关于问题所在的相同或至少的建议吗?

以下是我如何从Angualar调用REST:

@Injectable()
export class ProductService {
public _productUrl = 'http://10..../Mage_ang2/index.php/rest/V1/customers/1';

constructor(private _http: Http) { }

getProducts(): Observable<IProduct[]> {
let headers = new Headers({ 'Content-Type': 'application/json; charset=utf-8' });
headers.append('Authorization', 'Bearer ntthnrbj1uam2tuv1ekva7n8jh18mcnkby3');
let options = new RequestOptions( {method: RequestMethod.Get, headers: headers });


console.log(headers);
    return this._http.get(this._productUrl,options)
        .map((response: Response) => <IProduct[]> response.json())
        .do(data => console.log('All: ' +  JSON.stringify(data)))
        .catch(this.handleError);
}

当我在邮差中发布相同内容时,我会收到回复。

当我使用相同的标题运行Angular2时,我得到一个JSON响应,但是有400个(错误请求)!

此外,响应不会发出实际请求。

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:1)

我在示例应用程序中使用了相同的语法但没有授权标头。一切似乎都是正确的。

问题可能在于设置授权标头。检查授权令牌的正确性。

尝试使用此语法设置标题

let headers = new Headers({ 'Content-Type': 'application/json; charset=utf-8';Authorization: **token** });

答案 1 :(得分:0)

试试这个,它应该可行

 let headers = new Headers({
        'Content-Type': 'application/json',
        'Authorization':'Bearer ntthnrbj1uam2tuv1ekva7n8jh18mcnkby3'
    });

 return this._http.get(url,{headers:headers})
        .map(response: any => {
            return response.json();
        });

答案 2 :(得分:0)

尝试

const headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ntthnrbj1uam2tuv1ekva7n8jh18mcnkby3' });    

let options = new RequestOptions({ headers: headers });

return this._http.get(this._productUrl,options)