【问题标题】:Laravel Input::get() is not working via ajax request on Ubuntu serverLaravel Input::get() 在 Ubuntu 服务器上无法通过 ajax 请求工作
【发布时间】:2015-02-04 22:10:39
【问题描述】:

我在服务器上处理 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) 放在这些位置上,即使我在inspect element>Network 选项卡上使用fetchEntries?id=1 有正确的路径,这些也会返回NULL 值。

我真的很困惑。它在我的 Windows 机器上运行良好,但在我的服务器上却不行。

【问题讨论】:

  • 如果你有 dd (die and dump) 你告诉服务器停止处理并转储变量。你一开始就不能这样做,因为你永远不会得到响应,因为服务器永远不会点击函数的返回部分。如果您想解决任何问题,您必须通过记录数据在 jquery 中执行此操作。
  • 我知道..这就是为什么我说当我想调试它时我输入dd()。在我使用dd() 调试它之前就出现了问题。

标签: ajax ubuntu laravel


【解决方案1】:

试试这个...

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

public function fetchEntries($data=NULL){

        if(Request::ajax()){

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

【讨论】:

    【解决方案2】:

    我相信问题出在服务器上的 .htaccess 文件上。 RewriteRule 未正确完成。 找到类似的行并修复如下。

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

    [QSA] 是更改部分

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多