2017-10-23 9 views
-1

に要求を作成することは、possbileすべてのAPIのデフォルトの動作としてこれを持っていることですルート?laravel自動的に私はJSONレスポンス</p> <p>を得るためにすべての私の要求にXMLHttpRequestのヘッダーを送信する必要があります/ API/...のXMLHttpRequest

EDIT:

laravelは自動的に要求(例えば要求の検証エラー)失敗ホーム経路にリダイレクト。 ヘッダーを定義すると、何がうまくいかなかったかを示すjson応答が返されます。

/api以下のすべてのエンドポイントはjson固有であるため、ヘッダーを定義することなくこの動作をデフォルトにしたいと考えています。

+1

クリス、あなたが達成しようとしていることははっきりしていません。たぶんあなたはいくつかのコードを追加して、より多くの人々があなたを助けることができるように質問に少し追加することができますか? –

+0

一般に、これは反対側からアプローチし、フロントエンドのAjaxリクエストにデフォルトのヘッダーを設定します。 Laravelは既定で既に斧のためにこれをしています。 https://github.com/laravel/laravel/blob/master/resources/assets/js/bootstrap.js#L24 – devk

答えて

0

これは、ミドルウェアを使用してX-Requested-Withヘッダーを要求に挿入する前のミドルウェアで実行できます。

app/Http/Middleware/ForceXmlHttpRequest.phpを作成します。

namespace App\Http\Middleware; 

use Closure; 

class ForceXmlHttpRequest 
{ 
    public function handle($request, Closure $next) 
    { 
     $request->headers->set('X-Requested-With', 'XMLHttpRequest'); 

     return $next($request); 
    } 
} 

あなたapiミドルウェアグループにミドルウェアを適用します。これは、当然のことながら、離れて依頼者からの制御を取るん

'api' => [ 
    'throttle:60,1', 
    'bindings', 
    \App\Http\Middleware\ForceXmlHttpRequest::class, 
], 

app/Http/Kernel.phpを編集します。フレームワークに関する限り、apiミドルウェアグループに対するすべてのリクエストは、ajaxリクエストとして扱われ、リクエスタが別途指示する方法はありません。心に留めておくだけのもの。

NB:検査されていません。

関連する問題

 関連する問題