【问题标题】:Laravel API working in localhost but not worked in server while Request $requestLaravel API 在 localhost 中工作,但在请求 $request 时不能在服务器中工作
【发布时间】:2018-10-17 00:17:39
【问题描述】:

路线:

Route::get('api/get-market-list','MemberTradesController@getMarketList');

Route::get('api/get-market-list1','MemberTradesController@getMarketListtest');

控制器

public function getMarketListtest(Request $request){
        $markets = DB::table("markets")

            ->pluck("market","id");
        return response() -> json($markets);

    }


public function getMarketList(Request $request){
        $markets = DB::table("markets")
            ->where("exchange_id", $request->exchange_id)
            ->pluck("market","id");
        return response() -> json($markets);

    }

   <title>Laravel 5 - Dynamic autocomplete search using select2 JS Ajax</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>

    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />

<script type="text/javascript">
        $('#exchange').change(function(){
            var exchangeID = $(this).val();
            if(exchangeID){
                $.ajax({
                    type:"GET",
                    url:"{{url('api/get-market-list')}}?exchange_id="+exchangeID,
                    success:function(res){
                        if(res){
                            $("#market").empty();
                            $("#market").append('<option>Select</option>');
                            $.each(res,function(key,value){
                                $("#market").append('<option value="'+key+'">'+value+'</option>');
                            });

                        }else{
                            $("#market").empty();
                        }
                    }
                });
            }else{
                $("#market").empty();
                $("#symbol").empty();
            }
        });
       
    </script>

http://www.yourtradelog.com/api/get-market-list1

下面的 URL 没有获取数据,所以.. 我的 javascript 没有给我结果 http://www.yourtradelog.com/api/get-market-list?exchange_id=+1(不工作) 我想知道为什么这在服务器上不起作用,但在 localhost 中一切正常

**

错误日志

**:22https://i.stack.imgur.com/rnPfh.png

Composer update error

Database markets table

【问题讨论】:

  • 您在控制台中遇到了什么样的错误?
  • 请阅读日志文件看看会发生什么。
  • 这是 laravel 日志:#40 /var/lib/jenkins/workspace/ytl/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\Foundation \Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request)) #41 /var/lib/jenkins/workspace/ytl/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(对象(照亮\Http\Request))
  • 如果有人帮助我或解决它..我可以提供项目,也可以支付这个解决方案

标签: ajax laravel api


【解决方案1】:

我刚刚测试了您提供的链接,这是我对这种情况的看法:

  1. 您通过 url 发送的参数在 id 之前有一个 + (....=+1)
  2. 在您的路线上,您没有验证 exchange_id 是否存在(您应该)。如果您打算检索一个 ID,您可以将其称为 url,或创建一个验证以检查它是否正确。
  3. 根据您的错误(在 [2] 上),请确保无需登录即可访问路由(和错误页面)(因为我可以看到您没有使用 csrf_token)。当我发送请求时,我收到一个空的 json 数组,因此我无法复制该错误。你可以随时尝试composer update

编辑:既然你说它可以在 localhost 上运行,那么你是在生产环境中成功部署它还是只是复制-pasta?注意你的 .env 文件和文件权限

【讨论】:

  • 现在我应该进行 composer update 吗?因为更新作曲家时我很害怕。这个问题不是在 localhost 中面临的,而是在服务器中唯一的问题。本地主机提供数据,但服务器不能。
  • localhost 在 url 中提供带 + 和不带 + 的结果
  • 不要公开@RajyaguruHardik 提供类似的团队查看器信息。你确定你的数据库有信息吗?在服务器端。尝试使用 dd($request) 和 dd($market) 查看值
  • 实际上,我不知道如何 dd($request) 和 dd($market)...我可以这么说,一切都在我的本地主机上运行。我不知道是什么问题...你可以看到上面的两个函数,请求函数不工作,但另一个在服务器上工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 2013-10-01
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多