Commit c2c78952 authored by wangqinghua's avatar wangqinghua

router

parent c76622bb
...@@ -3,4 +3,7 @@ ...@@ -3,4 +3,7 @@
<component name="JavaScriptSettings"> <component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" /> <option name="languageLevel" value="ES6" />
</component> </component>
<component name="ProjectPlainTextFileTypeManager">
<file url="file://$PROJECT_DIR$/src/app/tabs/login/login.page.spec.ts" />
</component>
</project> </project>
\ No newline at end of file
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router'; import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
import {TabsPage} from "./tabs/tabs.page";
import {AppComponent} from "./app.component";
const routes: Routes = [ const routes: Routes = [
{ path: '', loadChildren: './tabs/tabs.module#TabsPageModule' }, {
{ path: 'home', loadChildren: './tabs/home/home.module#HomePageModule' }, path: 'tabs',
{ path: 'discover', loadChildren: './tabs/discover/discover.module#DiscoverPageModule' }, component: TabsPage,
{ path: 'serve', loadChildren: './tabs/serve/serve.module#ServePageModule' }, children: [
{ path: 'mine', loadChildren: './tabs/mine/mine.module#MinePageModule' }, {path: 'home', children: [{path: '', loadChildren: './tabs/home/home.module#HomePageModule'}]},
{path: 'discover', children: [{path: '', loadChildren: './tabs/discover/discover.module#DiscoverPageModule'}]},
{path: 'serve', children: [{path: '', loadChildren: './tabs/serve/serve.module#ServePageModule'}]},
{path: 'mine', children: [{path: '', loadChildren: './tabs/mine/mine.module#MinePageModule'}]},
{path: '', redirectTo: '/tabs/home', pathMatch: 'full'}
]
},
{
path: 'login', children: [{path: '', loadChildren: './tabs/login/login.module#LoginPageModule'}],
},
{
path: '',
redirectTo: '/tabs/home',
pathMatch: 'full'
},
{path:'*',component:AppComponent,}
]; ];
@NgModule({ @NgModule({
imports: [ imports: [
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules }) RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
......
...@@ -5,6 +5,7 @@ import { StatusBar } from '@ionic-native/status-bar/ngx'; ...@@ -5,6 +5,7 @@ import { StatusBar } from '@ionic-native/status-bar/ngx';
import {environment} from "../environments/environment"; import {environment} from "../environments/environment";
import {AppVersion} from "@ionic-native/app-version/ngx"; import {AppVersion} from "@ionic-native/app-version/ngx";
import {Storage} from "@ionic/storage"; import {Storage} from "@ionic/storage";
import {Router} from "@angular/router";
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
...@@ -17,6 +18,7 @@ export class AppComponent { ...@@ -17,6 +18,7 @@ export class AppComponent {
private statusBar: StatusBar, private statusBar: StatusBar,
private appVersion:AppVersion, private appVersion:AppVersion,
private storage:Storage, private storage:Storage,
private router:Router,
) { ) {
this.initializeApp(); this.initializeApp();
// console.log(App) // console.log(App)
...@@ -33,7 +35,7 @@ export class AppComponent { ...@@ -33,7 +35,7 @@ export class AppComponent {
alert(version); alert(version);
}) })
// this.loadLogin(); this.loadLogin();
}); });
} }
...@@ -41,6 +43,7 @@ export class AppComponent { ...@@ -41,6 +43,7 @@ export class AppComponent {
loadLogin(){ loadLogin(){
this.storage.get("userLoginInfo").then((value)=>{ this.storage.get("userLoginInfo").then((value)=>{
if (value != null && value != '') { if (value != null && value != '') {
this.router.navigate(['tabs/home'])
// this.user = value; // this.user = value;
// if(this.user.remember){ // if(this.user.remember){
// this.appService.ObserverHttpPost("/wisdomgroup/app/loginpost", this.user) // this.appService.ObserverHttpPost("/wisdomgroup/app/loginpost", this.user)
......
import {RouterModule} from "@angular/router"; import {IonicModule} from '@ionic/angular';
import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core'; import {NgModule} from '@angular/core';
import { CommonModule } from '@angular/common'; import {CommonModule} from '@angular/common';
import {FormsModule, ReactiveFormsModule} from '@angular/forms'; import {FormsModule} from '@angular/forms';
import {LoginService} from "./pages/login/login.service"; import {HomePageModule} from "./tabs/home/home.module";
import {LoginPage} from "./pages/login/login"; import {DiscoverPageModule} from "./tabs/discover/discover.module";
import {ServePageModule} from "./tabs/serve/serve.module";
import {MinePageModule} from "./tabs/mine/mine.module";
import {TabsPageModule} from "./tabs/tabs.module";
@NgModule({ @NgModule({
imports: [ imports: [
RouterModule, TabsPageModule,
HomePageModule,
DiscoverPageModule,
ServePageModule,
MinePageModule,
IonicModule,
CommonModule, CommonModule,
FormsModule, FormsModule,
ReactiveFormsModule,
], ],
declarations: [ declarations: [
LoginPage,
],
providers:[
LoginService
],
exports:[
], ]
schemas: [ CUSTOM_ELEMENTS_SCHEMA ],
}) })
export class AppMainModule { } export class AppMainModule {
}
...@@ -16,12 +16,19 @@ import {File} from "@ionic-native/file/ngx"; ...@@ -16,12 +16,19 @@ import {File} from "@ionic-native/file/ngx";
import {Badge} from "@ionic-native/badge/ngx"; import {Badge} from "@ionic-native/badge/ngx";
import {FileTransfer,FileTransferObject} from "@ionic-native/file-transfer/ngx"; import {FileTransfer,FileTransferObject} from "@ionic-native/file-transfer/ngx";
import {FileOpener} from "@ionic-native/file-opener/ngx"; import {FileOpener} from "@ionic-native/file-opener/ngx";
import {Storage} from "@ionic/storage"; import {IonicStorageModule} from "@ionic/storage";
import {AppMainModule} from "./app.main.module";
@NgModule({ @NgModule({
declarations: [AppComponent], declarations: [AppComponent],
entryComponents: [], entryComponents: [],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule], imports: [
AppMainModule,
BrowserModule,
AppRoutingModule,
IonicModule.forRoot(),
IonicStorageModule.forRoot()
],
providers: [ providers: [
StatusBar, StatusBar,
SplashScreen, SplashScreen,
...@@ -34,7 +41,6 @@ import {Storage} from "@ionic/storage"; ...@@ -34,7 +41,6 @@ import {Storage} from "@ionic/storage";
FileTransfer, FileTransfer,
FileOpener, FileOpener,
FileTransferObject, FileTransferObject,
Storage,
{provide: RouteReuseStrategy, useClass: IonicRouteStrategy} {provide: RouteReuseStrategy, useClass: IonicRouteStrategy}
], ],
bootstrap: [AppComponent] bootstrap: [AppComponent]
......
import {Routes} from "@angular/router";
const route : Routes = [
];
\ No newline at end of file
<ion-header>
<ion-toolbar>
<div class="searchToolBar">
<ion-title text-center>
用户登录
</ion-title>
</div>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="login-box">
<div class="login">
<img src="./assets/imgs/logo.png" class="login-logo">
<form #loginForm="ngForm" class="login-form">
<div class="login-input">
<img src="./assets/imgs/icon-phone.png" class="login-input-img">
<input [(ngModel)]="user.mobile" class="login-input-content" name="mobile" type="text" #mobile required placeholder="手机号"
(ionBlur)="loseFocus()" (ionFocus)="getFocus()" />
</div>
<div class="login-input">
<img src="./assets/imgs/icon-password.png" class="login-input-img">
<input [(ngModel)]="user.password" class="login-input-content" name="password" type="password" #password required placeholder="密 码"
(ionBlur)="loseFocus()" (ionFocus)="getFocus()" />
</div>
<div class="mui-input-row mui-checkbox mui-left" style="margin-bottom: 15px;">
<input [(ngModel)]="user.remember" name="checkbox" class="jizhu-password" value="1" type="checkbox" checked="true" style="margin-left:10px;width:17px;height:17px;vertical-align:middle">
<label style="padding-left:5px;font-family:'微软雅黑';" class="jizhu-password-label">记住密码</label>
</div>
<button type="button" (click)="forgetPassword()" class="login-btn" style="width: 48%;float: left;background-color: #b3bdcf;border-color: #b3bdcf;">忘记密码</button>
<button type="button" (click)="login()" class="login-btn" style="width: 48%;float: right;">&nbsp;&nbsp;</button>
</form>
<div class="introduce">
登陆手机号为组织部统一配发的手机号,初始密码为000000,使用过程中如有任何问题请联系人事处。
</div>
</div>
</div>
\ No newline at end of file
page-login {
.searchToolBar{
display: flex;
flex-direction: row;
align-items: center;
justify-content: left;
box-sizing: border-box;
}
.login-box{
background-color: #f0f1f2;
height: 100%
}
.login{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
box-sizing: border-box;
}
.login-logo{
width: 100px;
height: 100px;
margin: 20px 0;
}
.login-form{
width: 100%;
padding: 0 30px;
}
.login-input{
display: flex;
flex-direction: row;
align-items: center;
justify-content: left;
box-sizing: border-box;
background-color: #feffff;
width: 100%;
border-radius: 5px;
margin-bottom: 20px;
padding: 7px 3px;
font-size: 16px;
}
.login-input-img{
width: 30px;
height: 30px;
}
.login-input-content{
// background-color: #feffff;
border: 0;
width: 100%;
}
.login-bt{
background-color: #488afa;
font-size: 20px;
}
// .introduce-box{
// background-color: #f4f5f6;
// width: 100%;
// position: absolute;
// bottom: 0;
// padding: 5px 0;
// }
// .introduce{
// margin: 0 0 0 40px;
// font-size: 16px;
// color: #7e7f80;
// }
.introduce{
margin: 20px 30px 0 30px;
font-size: 14px;
color: #7e7f80;
// text-indent:2em;
}
.login-btn{
display: block;
width: 100%;
margin-bottom: 10px;
padding: 11px 0;
color: #fff;
border: 1px solid #4a89f9;
background-color: #4a89f9;
font-size: 18px;
font-weight: 600;
position: relative;
text-align: center;
white-space: nowrap;
border-radius: 3px;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
.jizhu-password{
color: #4a89f9;
font-family: Muiicons;
font-size: 28px;
font-weight: 400;
line-height: 1;
text-decoration: none;
border-radius: 0;
background: 0 0;
-webkit-font-smoothing: antialiased;
}
.back-btn{
width: 30px;
height: 30px;
}
}
import {HttpClient} from "@angular/common/http";
import {Injectable} from "@angular/core";
import {Observable} from "rxjs/Observable";
import {AppGlobal} from "../../service/http.service";
@Injectable()
export class LoginService{
constructor(private http:HttpClient){}
loginpost(data): Observable<any>{
return this.http.post(AppGlobal.domain+'/app/loginpost',data)
}
}
\ No newline at end of file
import { Component, ViewChild , Renderer,ElementRef} from '@angular/core';
import { NavController, NavParams, AlertController, LoadingController,} from "@ionic/angular";
import { NgForm } from '@angular/forms';
import {TabsPage} from "../../tabs/tabs.page";
import { Http, Response } from '@angular/http';
import {Storage} from "@ionic/storage";
import {CommonService} from "../../../provide/common.service";
import {LoginService} from "./login.service";
import {AppService} from "../../../http/http.service";
import {Router} from "@angular/router";
@Component({
selector: 'page-login',
templateUrl: 'login.html'
})
export class LoginPage {
@ViewChild('loginForm') currentForm: NgForm; //实时表单
loginForm: NgForm; //初始表单
submitted: boolean = false; //表单是否已经提交
tipFlag: boolean = false; // 输入时隐藏输入框以下信息
user = {
userid: '', //登录数据
mobile: '',
password: '',
remember:true
};
tabflag:any;
constructor(public navCtrl: NavController,
public navParams: NavParams,
public storage: Storage,
public AppService:AppService,
public alertCtrl: AlertController,
private loadingCtrl: LoadingController,
private router:Router,
public http: Http,private loginSer:LoginService,
public commonSer: CommonService,
public render: Renderer,
public elementRef:ElementRef) {
}
ionViewDidLoad(){
}
ionViewDidEnter() {
//默认显示
this.storage.get("userLoginInfo").then((value)=>{
if(value!=null && value != ''){
if( value.remember ){
this.user = value;
}
}
});
}
//输入框获取焦点:隐藏,失去焦点:显示
getFocus() {
this.tipFlag = true;
}
loseFocus() {
this.tipFlag = false;
}
async login() {
//验证手机号和密码是否输入
if(this.user.mobile == null || this.user.mobile == ''){
this.commonSer.toast('请输入手机号!');
return ;
}
if(this.user.password == null || this.user.password == ''){
this.commonSer.toast('请输入密码!');
return ;
}
let loading = await this.loadingCtrl.create({
message: '正在登录...',
backdropDismiss: true, //打开新的页面则关闭 正在登录
});
loading.present();
this.AppService.ObserverHttpPost("/wisdomgroup/app/loginpost", this.user)
.subscribe((res: Response) => {
loading.dismiss();
this.submitted = true;
let data = res.json();
if (data["code"] == '200') {
//将当前登录用户存进缓存,便于后期逻辑操作
this.storage.set('user', data.data);
this.user.userid = data.data.id;
this.storage.set('userLoginInfo',this.user);
// this.router.navigate(['/tabs/home'],{
// "user": this.user
// })
// return this.navCtrl.setRoot(TabsPage, { "user": this.user });
} else {
this.commonSer.alert('手机号或密码错误!');
// return this.navCtrl.setRoot(LoginPage);
}
}, error => {
if (loading) loading.dismiss();
}
);
}
//忘记密码
forgetPassword():void{
this.commonSer.alert('若忘记密码,请与人事处联系。');
}
}
<ion-header>
<ion-toolbar>
<ion-title>login</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-login',
templateUrl: './login.page.html',
styleUrls: ['./login.page.scss'],
})
export class LoginPage implements OnInit {
constructor() { }
ngOnInit() {
}
}
...@@ -3,7 +3,6 @@ import { NgModule } from '@angular/core'; ...@@ -3,7 +3,6 @@ import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { TabsPageRoutingModule } from './tabs.router.module';
import { TabsPage } from './tabs.page'; import { TabsPage } from './tabs.page';
...@@ -12,7 +11,6 @@ import { TabsPage } from './tabs.page'; ...@@ -12,7 +11,6 @@ import { TabsPage } from './tabs.page';
IonicModule, IonicModule,
CommonModule, CommonModule,
FormsModule, FormsModule,
TabsPageRoutingModule
], ],
declarations: [TabsPage] declarations: [TabsPage]
}) })
......
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { TabsPage } from './tabs.page';
const routes: Routes = [
{
path: 'tabs',
component: TabsPage,
children: [
{path: 'login', children: [{path: '', loadChildren: './login/login.module#HomePageModule'}]},
{path: 'home', children: [{path: '', loadChildren: './home/home.module#HomePageModule'}]},
{path: 'discover', children: [{path: '', loadChildren: './discover/discover.module#DiscoverPageModule'}]},
{path: 'serve', children: [{path: '', loadChildren: './serve/serve.module#ServePageModule'}]},
{path: 'mine', children: [{path: '', loadChildren: './mine/mine.module#MinePageModule'}]},
{path: '', redirectTo: '/tabs/home', pathMatch: 'full'}
]
},
{
path: '',
redirectTo: '/tabs/home',
pathMatch: 'full'
}
];
@NgModule({
imports: [
RouterModule.forChild(routes)
],
exports: [RouterModule]
})
export class TabsPageRoutingModule {}
...@@ -20,11 +20,11 @@ export class AppGlobal { ...@@ -20,11 +20,11 @@ export class AppGlobal {
//图片地址 //图片地址
// static picture = AppGlobal.domain + "/wisdomgroup/manager/getIcon/"; //正式地址 // static picture = environment.domain + "/wisdomgroup/manager/getIcon/"; //正式地址
static picture = environment.domain + "/wisdomgroup/manager/getIcon/"; //测试 static picture = environment.domain + "/wisdomgroup/manager/getIcon/"; //测试
//通知公告图片参数 //通知公告图片参数
// static pictureNotice = AppGlobal.domain; //正式地址 // static pictureNotice = environment.domain; //正式地址
static pictureNotice = environment.domain; //测试 static pictureNotice = environment.domain; //测试
//接口地址 //接口地址
...@@ -71,29 +71,29 @@ export class AppService { ...@@ -71,29 +71,29 @@ export class AppService {
//get请求 //get请求
ObserverHttpGet(url, params): Observable<any> { ObserverHttpGet(url, params): Observable<any> {
return this.http.get(AppGlobal.domain + url + this.encode(params, "get")) //app return this.http.get(environment.domain + url + this.encode(params, "get")) //app
} }
//get请求 //get请求
ObserverHttpGetData(url, params): Observable<any> { ObserverHttpGetData(url, params): Observable<any> {
return this.http.get(AppGlobal.domain +url, params) //本地 return this.http.get(environment.domain +url, params) //本地
} }
//get请求 //get请求
ObserverHttpGetAdd(url, params): Observable<any> { ObserverHttpGetAdd(url, params): Observable<any> {
return this.http.get(AppGlobal.domain + url + params) //app return this.http.get(environment.domain + url + params) //app
} }
//get请求带?的 //get请求带?的
ObserverHttpGetOption(url, params): Observable<any> { ObserverHttpGetOption(url, params): Observable<any> {
return this.http.get(AppGlobal.domain + url, {params: params}); //app return this.http.get(environment.domain + url, {params: params}); //app
} }
//get请求带pararms ,body 的 //get请求带pararms ,body 的
ObserverHttpGetAddBody(url, params,body): Observable<any> { ObserverHttpGetAddBody(url, params,body): Observable<any> {
return this.http.post(AppGlobal.domain + url + params,null, { //本地 return this.http.post(environment.domain + url + params,null, { //本地
params:body, params:body,
headers: new Headers({ headers: new Headers({
// "Accept": "application/json", // "Accept": "application/json",
...@@ -106,17 +106,17 @@ export class AppService { ...@@ -106,17 +106,17 @@ export class AppService {
//delete //delete
ObserverHttpDetelete(url, params): Observable<any> { ObserverHttpDetelete(url, params): Observable<any> {
return this.http.delete(AppGlobal.domain + url + this.encode(params, "get")) //app return this.http.delete(environment.domain + url + this.encode(params, "get")) //app
} }
//delete //delete
ObserverHttpDeteleteOption(url, params): Observable<any> { ObserverHttpDeteleteOption(url, params): Observable<any> {
return this.http.delete(AppGlobal.domain + url + params) //app return this.http.delete(environment.domain + url + params) //app
} }
//delete //delete
ObserverHttpDeteleteData(url, params, data): Observable<any> { ObserverHttpDeteleteData(url, params, data): Observable<any> {
return this.http.delete(AppGlobal.domain + url + params, { //app return this.http.delete(environment.domain + url + params, { //app
params: this.encode(data, 'post'), params: this.encode(data, 'post'),
headers: new Headers({ headers: new Headers({
"Content-Type": "application/json" "Content-Type": "application/json"
...@@ -125,7 +125,7 @@ export class AppService { ...@@ -125,7 +125,7 @@ export class AppService {
} }
ObserverHttpPostData(url, params) { ObserverHttpPostData(url, params) {
return this.http.post(AppGlobal.domain + url, params, { //app return this.http.post(environment.domain + url, params, { //app
headers: new Headers({ headers: new Headers({
"Content-Type": "application/json" "Content-Type": "application/json"
}) })
...@@ -133,7 +133,7 @@ export class AppService { ...@@ -133,7 +133,7 @@ export class AppService {
} }
ObserverHttpPostAdd(url, params) { ObserverHttpPostAdd(url, params) {
return this.http.post(AppGlobal.domain + url + params, { //app return this.http.post(environment.domain + url + params, { //app
headers: new Headers({ headers: new Headers({
"Content-Type": "application/json" "Content-Type": "application/json"
}) })
...@@ -141,7 +141,7 @@ export class AppService { ...@@ -141,7 +141,7 @@ export class AppService {
} }
ObserverHttpPostOption(url, data) { ObserverHttpPostOption(url, data) {
return this.http.post(AppGlobal.domain + url, null, { //app return this.http.post(environment.domain + url, null, { //app
params: data, params: data,
headers: new Headers({ headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded,charset=UTF-8' 'Content-Type': 'application/x-www-form-urlencoded,charset=UTF-8'
...@@ -152,7 +152,7 @@ export class AppService { ...@@ -152,7 +152,7 @@ export class AppService {
//post请求 //post请求
ObserverHttpForm(url, params,body) { ObserverHttpForm(url, params,body) {
return this.http.post(AppGlobal.domain+url + params,null,{ return this.http.post(environment.domain+url + params,null,{
params:body, params:body,
headers: new Headers({ headers: new Headers({
// "Accept": "application/json", // "Accept": "application/json",
...@@ -164,7 +164,7 @@ export class AppService { ...@@ -164,7 +164,7 @@ export class AppService {
} }
ObserverHttpPostForm(url, params) { ObserverHttpPostForm(url, params) {
return this.http.post(AppGlobal.domain + url, null, { //app return this.http.post(environment.domain + url, null, { //app
params: params, params: params,
headers: new Headers({ headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded,charset=UTF-8' 'Content-Type': 'application/x-www-form-urlencoded,charset=UTF-8'
...@@ -174,7 +174,7 @@ export class AppService { ...@@ -174,7 +174,7 @@ export class AppService {
//post请求 //post请求
ObserverHttpPost(url, params) { ObserverHttpPost(url, params) {
return this.http.post(AppGlobal.domain + url, null, { //app return this.http.post(environment.domain + url, null, { //app
params: this.encode(params, 'post'), params: this.encode(params, 'post'),
headers: new Headers({ headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
...@@ -184,7 +184,7 @@ export class AppService { ...@@ -184,7 +184,7 @@ export class AppService {
//post请求 //post请求
ObserverHttpNoForm(url, params) { ObserverHttpNoForm(url, params) {
return this.http.post(AppGlobal.domain + url, null, { //app return this.http.post(environment.domain + url, null, { //app
params: params, params: params,
headers: new Headers({ headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
...@@ -195,7 +195,7 @@ export class AppService { ...@@ -195,7 +195,7 @@ export class AppService {
//post请求 params+body //post请求 params+body
ObserverHttpPostParamsBody(url, params, data) { ObserverHttpPostParamsBody(url, params, data) {
return this.http.post(AppGlobal.domain + url + params, data, { //app return this.http.post(environment.domain + url + params, data, { //app
headers: new Headers({ headers: new Headers({
"Content-Type": "application/json" "Content-Type": "application/json"
}) })
...@@ -204,7 +204,7 @@ export class AppService { ...@@ -204,7 +204,7 @@ export class AppService {
//put请求 //put请求
ObserverHttpPut(url, params, data) { ObserverHttpPut(url, params, data) {
return this.http.put(AppGlobal.domain + url + params, data, { //app return this.http.put(environment.domain + url + params, data, { //app
headers: new Headers({ headers: new Headers({
"Content-Type": "application/json" "Content-Type": "application/json"
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment