フロントから↓のようにリクエストを投げてLaravelを使ってAPIでデータ取得を行おうとしております。
javascript
1axios({ 2 method : 'POST', 3 url: '/api/getItemData', 4 data: { 5 prop: 'xxxx', 6 } 7}) 8.then(r => { 9 console.log(r); 10}) 11.catch(function(error) { 12 console.log(error); 13}); 14
laravel側はこちらです↓
php
1[routes/api.php] 2Route::post('getItemData', 'Api\GetData@redirectToProvider');
php
1[contorollers/api/GetData.php] 2<?php 3 4namespace App\Http\Controllers\API; 5 6use Illuminate\Http\Request; 7use App\Http\Controllers\Controller; 8 9class GetData extends Controller 10{ 11 public function redirectToProvider(Request $request) { 12 return 'success1'; 13 } 14}
これはうまくいくのですが。。。
実際は、↑のものでアクセストークンを取得して、次のコントローラに渡したく、ルートを渡して
php
1[contorollers/api/GetData.php] 2<?php 3 4namespace App\Http\Controllers\API; 5 6use Illuminate\Http\Request; 7use App\Http\Controllers\Controller; 8 9class GetData extends Controller 10{ 11 public function redirectToProvider(Request $request) { 12 return redirect()->route('/api/getData', $request); 13 } 14}
php
1[routes/api.php] 2Route::post('getItemData', 'Api\GetData@redirectToProvider'); 3Route::post('getData', function($request){ 4 return 'failure...'; 5}); 6
と、リダイレクトを渡しているのですが、エラー500でうまく行かず。
他のコントローラーに渡すにはどうしたら良いのでしょう?
404じゃなくて500?であれば構文エラーとかなのでログが出ているはず。エラーログは確認されました?
PHPの扱いに慣れておらず、申し訳ないのですが。。。 サーバー起動しているターミナルにはエラーが出ず、該当URLにブラウザでアクセスしてもエラーはでず、JSのajaxの結果としてエラーが表示されるだけなのです。。 どのように確認できますでしょうか?
サーバーのエラーログなのでサーバー内のディレクトリ、ログファイルを直接確認してください。どのサーバーかにもよるので今提示されている情報だけではわかりません。
【mac OS X】で、【laravel→artisan serve】してサーバーを立ち上げております。 【 $ROOT/storage/laravel.log】を確認してみたのですが、【 local.ERROR: Method App\Http\Controllers\API\GetData::redirectToProvider does not exist. 】 と出ております。。。 リダイレクトを指定しているコントローラー(モデル?)でエラーのように見受けられますが、リダイレクトではなく文字列表示だけやったら意図しているものが返ってきているのですが。。。
回答2件
あなたの回答
tips
プレビュー