【问题标题】:Can't "get" data in get ajax request using laravel无法使用 laravel 在获取 ajax 请求中“获取”数据
【发布时间】:2017-02-22 15:12:47
【问题描述】:

我只是无法检索我的查询字符串部分中的数据。

我在整个网站中都使用 AJAX 请求来异步执行各种任务,并且没有遇到此类问题。

路线

Route::get('/mensagem/enviar_mensagem', [ 'as' => 'mensagem.enviar_mensagem', 'uses' => 'MensagemController@enviar_mensagem']);

测试地址:

http://mydomain.com.br/mensagem/enviar_mensagem?para=email@bol.com.br

我的操作方法:

public function enviar_mensagem(Request $request)
{
     $para = $request->get('para');
    //$para = $_GET['para']; I get an undefined index error
    echo $para; //always empty string!
}

【问题讨论】:

  • 原来是 Ngnix 配置问题。它忽略了我的查询字符串。

标签: php ajax laravel ubuntu networking


【解决方案1】:

您需要使用input。像这样:

另外,对于测试,returnecho

public function enviar_mensagem(Request $request)
{
    $para = $request->input('para');    
    return $para;
}

为了激发我的好奇心,return $request->all() 会返回什么?

【讨论】:

    【解决方案2】:

    嗯,提供的代码似乎是正确的。确保您use \Illuminate\Http\Request。这段代码

    Route::get('/mensagem/enviar_mensagem', function(\Illuminate\Http\Request $request) {
    
        return $request->para;
    //    return $request->get('para');  // also works  
    
    });
    

    根据请求返回email@bol.com.br http://your-site.app/mensagem/enviar_mensagem?para=email@bol.com.br

    【讨论】:

    • 我包含了“使用 \Illuminate\Http\Request”。我还尝试在我的操作参数列表中使用“\Illuminate\Http\Request $request”,但什么也没有。 $request->para 似乎返回空字符串。
    【解决方案3】:

    我复制粘贴了你的代码,两者都有效:

    $para = $request->get('para');
    $para = $_GET['para'];
    //$para = $_GET['para']; I get an undefined index error
    

    您是否确保网络服务器正确处理 HTTP 请求? https://laravel.com/docs/5.4#web-server-configuration

    【讨论】:

    • 也许这行得通:/index.php/mensagem/enviar_mensagem?para=email@bol.com.br
    【解决方案4】:

    你可以试试下面的代码:

    use Request;
    
    class xyzController {
        public function enviar_mensagem()
        {
           $para = Request::all();
           echo $para['para']; 
        }
    

    }

    【讨论】:

      【解决方案5】:

      首先你需要改变路线来添加这个

      Route::get('/mensagem/enviar_mensagem/{para}',
       [ 'as' => 'mensagem.enviar_mensagem', 'uses' => 
      'MensagemController@enviar_mensagem']);
      

      然后在控制器中

      public function enviar_mensagem($para){
        return var_dump($para);
      }
      

      【讨论】:

        【解决方案6】:

        使用请求对象上的路由方法访问GET参数

        public function enviar_mensagem(Request $request)
        {
            $para = $request->route('para');
        
            echo $para;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多