POST data ionic 3和后端API restful laravel

时间:2018-04-24 03:56:58

标签: rest ionic-framework laravel-5 ionic3 ionic-view

我在添加学生页面时遇到有关POST数据的问题。我正在使用离子3和后端API restful laravel,我在postman中尝试了这个POST并且它有效,但是在单击Add按钮后我收到了一条错误消息“无效令牌或令牌未提供”(请参阅​​first图片) 。我不知道如何使用auth令牌编写方法。

您可以参考我的提供商(second图片),addstudent.ts(third图片),按钮html(forth图片)以供参考

提前致谢。

2 个答案:

答案 0 :(得分:1)

假设您将令牌存储在存储中(例如localStorage或sessionStorage),您可以执行以下操作:

步骤1:添加Auth提供程序并扩展BaseRequestOptions

import { BaseRequestOptions, RequestOptions, RequestOptionsArgs } from '@angular/http';
import { Injectable } from '@angular/core';

@Injectable()
export class AuthProvider extends BaseRequestOptions {

  constructor() {
    super();
    this.headers.set('Content-Type', 'application/json');
  }

  merge(options?: RequestOptionsArgs): RequestOptions {

    let newOptions = super.merge(options);
    let accessToken = localStorage.getItem('accessToken');
    if (accessToken !== null && accessToken !== undefined) {
      let token: AcessTokenResponse = JSON.parse(accessToken);
      newOptions.headers.set('Authorization', token.token_type + ' ' + token.access_token);
    }

    return newOptions;
  }
}

第2步:在 app.module.ts 文件

中的提供商下添加 AuthProvider

答案 1 :(得分:0)

根据我的经验,您需要在 POST 电话中添加RequestOptions,如下所示:

    let options = new RequestOptions({
      headers: headers
    });
    this.http.post(this.apiUrl+'/addstudent', addStudent, options)

在您的代码中,您正在创建Header但未将其传递给post请求。

尝试上面的代码希望这有助于您的API工作。