在laravel 5.7和vue.js中,搜索功能在我的主机中不起作用

我有一个使用laravel 5.7和vue.js的多供应商网站项目。我将以下代码用于搜索功能。

我的 Web.php

Route::post('product/search','Api\productController@search');

我的控制器

public function search(Request $request)
   {
            $searchTitle = $request->title;
            $searchCategory = $request->category;
            $searchUni = $request->uni;
            $searchCity = $request->city;
            if ($searchTitle || $searchCategory || $searchUni || $searchCity) {
                $ads = advertise::when($searchCategory,function ($query) use ($searchCategory) {
                    return $query->where('category_id','like',"%{$searchCategory}%");
                })
                    ->when($searchUni,function ($query) use ($searchUni) {
                        return $query->where('university',"%{$searchUni}%");
                    })
                    ->when($searchCity,function ($query) use ($searchCity) {
                        return $query->where('city',"%{$searchCity}%");
                    })
                    ->when($searchTitle,function ($query) use ($searchTitle) {
                        return $query->where('title',"%{$searchTitle}%");
                    })
                    ->where('status','=',1)->orderBy('created_at','desc')->paginate(18)
                    ->appends(request()->query());
            } else {
                $ads = advertise::where('status','desc')->paginate(18);

            }
            $i = 0;
            foreach($ads as $sd){
                $images = image::where('adver_id',$sd->id)->get();
    //            return response()->json($images);
                if(!$images->isEmpty()){
    //                return response()->json($images);
                    $ads[$i]->image1= $images[0]->image;
                }
                $i=$i+1;
            }
            return new productCollection($ads);
   }

我的 vue-route.js 中的axios:

    axios.post("/api/product/search/",this.searchbox).then(response => {

                        if( response.data.data.length === 0 ) {
                            this.showTeezers = "nothing"
                            this.$store.state.teezers=[]

                        } else {
                            this.$store.state.teezers=response.data.data
                        }
                    }).catch(error => {
                        console.log(error)
                    })

当我在本地主机上运行项目时,它运行良好,但是当我将其移至 host (Linux服务器)中时,则无法正常工作。该错误出现在主机中:

  

“此路由不支持GET方法。受支持的方法:   POST。”,405方法不允许

zhangwen158 回答:在laravel 5.7和vue.js中,搜索功能在我的主机中不起作用

尝试将回调与uses方法匹配。

Route::post('product/search',['uses' => 'Api\productController@search']);
,

我的错误是在以下代码中搜索后使用/:public class Customer { @Id @CsvBindByName Long ID; @CsvBindByName String NAME; @CsvBindByName String EMAIL; . . . } 我删除了它,这是正确的。谢谢大家。

,

好吧,我将列出所有可以考虑的内容:

您是否尝试过清除主机中的缓存?如果您输入的路线有错误,则输入腻子“ php artisan route:cache”,这可能会引发错误

您在“ php artisan route:list”中看到要使用的路由吗?如果您不这样做,那么问题就在于laravel无法通过您的路线

最后,我认为这听起来很糟糕,但是请尝试检查服务器中的内容是否与本地主机中的内容匹配。

本文链接:https://www.f2er.com/3164144.html

大家都在问