Php Laravel 5.0 routes-使用为GET定义的查询字符串invoke controller发布URL
我为同一URL的路由中的GET和POST方法定义了两个不同的控制器,但是当我使用paginator时,它会将查询字符串添加到URL的末尾,我创建了paginator链接以在单击时生成AJAX POST,但它会调用GET控制器,下面是路由中的代码Php Laravel 5.0 routes-使用为GET定义的查询字符串invoke controller发布URL,php,jquery,ajax,post,laravel-5,Php,Jquery,Ajax,Post,Laravel 5,我为同一URL的路由中的GET和POST方法定义了两个不同的控制器,但是当我使用paginator时,它会将查询字符串添加到URL的末尾,我创建了paginator链接以在单击时生成AJAX POST,但它会调用GET控制器,下面是路由中的代码 Route::get('assets' , 'Assets\AssetController@index'); Route::post('assets', 'Assets\AssetController@searchResults'); 这是向其发出AJ
Route::get('assets' , 'Assets\AssetController@index');
Route::post('assets', 'Assets\AssetController@searchResults');
这是向其发出AJAX POST请求的URL
http://beta.rebuild.com/assets/?page=2
完成AJAX POST的javascript代码
var url = $(obj).attr('data-page');
$('#assetsform').attr('action', url);
$('#assetsform').ajaxSubmit(function(response) {
$('.results-table').append(response);
}
);
我遗漏了什么吗?请告知,我需要去邮局调度员的请求
更新:
如果像这样在资产(资产/页面)后面使用斜杠,就会出现问题
http://beta.rebuild.com/assets/?page=2
但是如果没有斜杠(assets?page=2),则可以正确地生成文章,但是默认情况下,laravel呈现的url具有斜杠。如果我可以在routes.php中进行修复,是否有问题?您的Ajax请求是指向带有GET参数的url,而且方法ajaxSumbit的默认方法是GET,并且您没有告诉ajaxSumbit函数您要进行POST请求,因此它会发出GET请求。 您可以尝试以下方法:
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);
表单中的方法已经设置为POST,我甚至尝试在代码中将类型设置为POST,但没有成功。我还使用firebug进行了检查,请求确实是POST。除此之外,我还删除了所有与AJAX相关的代码,除了这一行“var url=$(obj).attr('data-page');”来更改查询字符串并将其添加到action属性,然后进行正常的POST提交,即使提交到GET控制器,只要我将?page=2添加到action属性。。如果不添加,效果会很好。