Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.0 routes-使用为GET定义的查询字符串invoke controller发布URL_Php_Jquery_Ajax_Post_Laravel 5 - Fatal编程技术网

Php Laravel 5.0 routes-使用为GET定义的查询字符串invoke controller发布URL

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

我为同一URL的路由中的GET和POST方法定义了两个不同的控制器,但是当我使用paginator时,它会将查询字符串添加到URL的末尾,我创建了paginator链接以在单击时生成AJAX POST,但它会调用GET控制器,下面是路由中的代码

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属性。。如果不添加,效果会很好。