5

GETのルートを登録しましたlaravel.dev/test。ルートに対応するコントローラーは、リクエストが ajax かどうかを区別します。

ブラウザに入力laravel.dev/testすると、Laravel はそれが ajax リクエストではないことを検出しreturn View::make()、ページの生成に使用します。次にBackbone.js、ページ上のコードが ajax リクエストを作成しlaravel.dev/test、Laravel が使用return Response::jsonして JSON を返します。

ページから離れて移動しようとするまでlaravel.dev/testは問題ありませんが、ブラウザ ボタンを使用して戻って json を応答として出力します。

4

3 に答える 3

2

これはlaravelやバックボーンではなく、クロムの問題です! これもチェックしてください

私のために働いた解決策は、置くことです

return Response::json($this->data)->header("Vary", "Accept");

幸運を!

于 2015-05-17T12:55:34.877 に答える
1

これは Laravel 5.1 にありますが、原則は以前のすべてのバージョンでも機能するはずです。

私がそれを処理した方法は、同じメソッドを指す 2 つのルートを使用することでしたが、1 つのルートは.json拡張子で終わります。

get('items', ['as' => 'items', 'uses' => 'ItemsController@index']);
get('items.json', ['as' => 'items', 'uses' => 'ItemsController@index']);

次に、私のindex()方法の中で:

$data = []; // your collection

if ($this->request->ajax()) {
    return response()->json($data); // replace with actual JSON data
}

return view('items.index', compact('data')); 

これにより、JSON 応答専用の URL が可能になり、同じメソッドとデータが使用され、戻るボタンが妨げられることはありません。

于 2015-08-12T21:10:49.383 に答える