2017-02-04 1 views
0

同じURLのルートにGETメソッドとPOSTメソッド用に2つの異なるコントローラが定義されていますが、ページマネージャを使用すると、 URLの最後に、私はクリックでAJAX POSTを作るためのページネータリンクを作ったが、それは以下のルートのコードがあり、GETコントローラを呼び出すLaravel 5.0 routes - POST URL with query string GET用に定義されたコントローラを呼び出す

Route::get('assets' , 'Assets\[email protected]'); 
Route::post('assets', 'Assets\[email protected]'); 

これはAJAX POSTリクエストがされているURLであります製。

AJAX POSTを行うjavascriptのコード
http://beta.rebuild.com/assets/?page=2 

var url = $(obj).attr('data-page'); 
$('#assetsform').attr('action', url); 
$('#assetsform').ajaxSubmit(function(response) { 
     $('.results-table').append(response); 
    }     
); 

私は何も足りませんか?アドバイスをしてください、私はPOSTコントローラに行く要求が必要です。

更新: 問題は適切に、私はこの

http://beta.rebuild.com/assets/?page=2 

しかしスラッシュのない(?= 2資産ページ)などの資産(資産/ページ)の後にスラッシュを使用している場合、それはPOSTを作る起こりますただし、laravelによってレンダリングされたURLにはデフォルトでスラッシュが付きます。 routes.phpを作成することができますか?

答えて

0

あなたはAjaxリクエストをGETパラメータ付きのURLに送りますが、メソッドajaxSumbitのデフォルトメソッドはGETです。代わりにGETリクエストを行うようにPOSTリクエストを行いたいajaxSumbit関数を教えていません。 あなたはこのような何かを試みることができる:

var urlLink = $(obj).attr('data-page'); 
$('#assetsform').attr('action', urlLink); 
var options = { 
    url:  urlLink, 
    type: 'POST', 
    success: function(responseText) { 
     $('.results-table').append(responseText); 
    } 
}; 
// pass options to ajaxForm 
$('#assetsform').ajaxForm(options); 
+0

形式のメソッドがすでにPOSTに設定されているが、私もコードでPOSTと種類を設定しようとしました、そしてそれは働いていませんでした。私はまた、火かき棒を使用してチェックし、要求は確実にPOSTです。さらに、この行以外のすべてのAJAX関連コードを削除しました。 "var url = $(obj).attr( 'data-page');"アクション属性にクエリ文字列を変更して追加してから、通常のPOSTを実行しても、GETコントローラに移動しても、アクション属性に?page = 2を追加するとすぐに問題が発生します。それは良い作品です。 – Jaikar

関連する問題