我在添加学生页面时遇到有关POST数据的问题。我正在使用离子3和后端API restful laravel,我在postman中尝试了这个POST并且它有效,但是在单击Add按钮后我收到了一条错误消息“无效令牌或令牌未提供”(请参阅first图片) 。我不知道如何使用auth令牌编写方法。
您可以参考我的提供商(second图片),addstudent.ts(third图片),按钮html(forth图片)以供参考
提前致谢。
答案 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工作。