Laravel Input :: get()无法通过Ubuntu服务器上的ajax请求工作

时间:2015-02-01 21:38:32

标签: ajax ubuntu laravel

我在服务器上处理ajax请求时遇到问题。

我有来自js的这个ajax请求:

$.get('/fetchEntries',{id:id},function(data){
 if(data){
  alert('success');
 }else{
  alert('failed);
 }
});

routes我得到了:

Route::get('/fetchEntries','EntriesController@fetchEntries');

我的控制器有:

public function fetchEntries(){
        if(Request::ajax()){
            $id= Input::get('id');
            dd($id);
        return Response::json($id);
        }
    }

此代码在Windows中的开发计算机上完全正常运行,并提醒成功'。 但是在我的部署服务器(Ubuntu)上,它会发出“失败”的警告。这意味着它没有获取任何数据。当我尝试在服务器上调试文件时,dd(Input::get('id));dd($id)这些文件会返回NULL值,即使我在inspect element>Network标签上的fetchEntries?id=1选项卡上有正确的路径

我真的很困惑。它在我的Windows机器上工作正常,但在我的服务器上它没有。

2 个答案:

答案 0 :(得分:0)

试试这个......

Route::get('/fetchEntries/{data}','EntriesController@fetchEntries');

public function fetchEntries($data=NULL){

        if(Request::ajax()){

            $id= $data;
            dd($id);
        return Response::json($id);
        }
    }

答案 1 :(得分:0)

我认为问题在于服务器上的.htaccess文件。 RewriteRule没有正确完成。 找到类似的行并修复如下。

RewriteRule ^(.*)$ /index.php?/$1 [QSA]

[QSA]是更改部分