質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Q&A

解決済

1回答

573閲覧

IonicのHTTP通信で404エラーが発生する

dauto

総合スコア38

Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

0グッド

0クリップ

投稿2019/06/20 11:09

編集2019/06/20 13:12

Ionicにログイン機能を実装する為、
Flicher Blog様の実装方法
を参考にコードを書きブラウザでテストしたのですが、会員登録の処理を送ると404エラーが出てバックエンドと接続が出来ません。どこを改善すれば実装できますでしょうか。

POST http://ドメイン/laravel-auth-passport/auth/register 404 (Not Found)

エラーに関係すると思われるコード

auth.service.ts

TypeScript

1import { HttpClient, HttpHeaders } from '@angular/common/http'; 2import { Injectable } from '@angular/core'; 3import { tap } from 'rxjs/operators'; 4import { NativeStorage } from '@ionic-native/native-storage/ngx'; 5import { EnvService } from './env.service'; 6import { User } from '../models/user'; 7 8@Injectable({ 9 providedIn: 'root' 10}) 11export class AuthService { 12 isLoggedIn = false; 13 token:any; 14 15 constructor( 16 private http: HttpClient, 17 private storage: NativeStorage, 18 private env: EnvService, 19 ) { } 20 21 login(email: String, password: String) { 22 return this.http.get(this.env.API_URL + 'auth/login', 23 {email: email, password: password} 24 ).pipe( 25 tap(token => { 26 this.storage.setItem('token', token) 27 .then( 28 () => { 29 console.log('Token Stored'); 30 }, 31 error => console.error('Error storing item', error) 32 ); 33 this.token = token; 34 this.isLoggedIn = true; 35 return token; 36 }), 37 ); 38 } 39 register(fName: String, lName: String, email: String, password: String) { 40 return this.http.post(this.env.API_URL + 'auth/register', 41 {fName: fName, lName: lName, email: email, password: password} 42 ) 43 } 44 logout() { 45 const headers = new HttpHeaders({ 46 'Authorization': this.token["token_type"]+" "+this.token["access_token"] 47 }); 48 return this.http.get(this.env.API_URL + 'auth/logout', { headers: headers }) 49 .pipe( 50 tap(data => { 51 this.storage.remove("token"); 52 this.isLoggedIn = false; 53 delete this.token; 54 return data; 55 }) 56 ) 57 } 58 user() { 59 const headers = new HttpHeaders({ 60 'Authorization': this.token["token_type"]+" "+this.token["access_token"] 61 }); 62 return this.http.get<User>(this.env.API_URL + 'auth/user', { headers: headers }) 63 .pipe( 64 tap(user => { 65 return user; 66 }) 67 ) 68 } 69 getToken() { 70 return this.storage.getItem('token').then( 71 data => { 72 this.token = data; 73 if(this.token != null) { 74 this.isLoggedIn=true; 75 } else { 76 this.isLoggedIn=false; 77 } 78 }, 79 error => { 80 this.token = null; 81 this.isLoggedIn=false; 82 } 83 ); 84 } 85}

env.service.ts

TypeScript

1import { Injectable } from '@angular/core'; 2 3@Injectable({ 4 providedIn: 'root' 5}) 6export class EnvService { 7 API_URL = 'http://ドメイン/laravel-auth-passport/'; 8 9 constructor() { } 10}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラーを読まないとわからないですが、404でしたらCORSかLaravelのドメイン間違いである可能性が高いです。

・ consoleを確認してCORSでエラーになっていないか確認する
・ アクセスしているURLが有効かどうか POSTMAN (https://www.getpostman.com/)などを使って確認
・ Laravelのログを確認

あたりをする必要があると思います。以上、よろしくお願い申し上げます。

投稿2019/06/20 11:37

編集2019/06/20 11:38
rdlabo

総合スコア448

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dauto

2019/06/20 17:23

ご回答ありがとうございます。 Laravel側の問題をあまり考慮していなかったので調べた所、通常のドキュメントルートであるpublicディレクトリをURLに指定していなかったことが原因でした。 これで404のエラーは解消したのですが、今度は422のエラーが表示され躓いています。 422なので送信するデータが処理できないのは分かるのですが、原因が特定できません。 別の問題になるので、新しく質問させて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問