簡體   English   中英

laravel,ajax調用從輸入到控制器功能500的錯誤

[英]laravel, ajax call from input to controller function 500 error

我不確定這是怎么回事,但是當我的ajax調用我的php控制器方法時,我得到500錯誤,我想知道它是否可能是數據類型錯誤或只是語法。

我從表單輸入通過ajax調用傳遞到我的函數中的值正被傳遞到service.php文件中的url端點。

ajax本身正在成功調用函數,但我無法驗證函數中$ searchResults的結果,因為它似乎在傳遞時失敗了。

我開始在瀏覽器中輸入帶有斷點的Test輸入,並將輸入的值顯示為“T”。 如果在端點的查詢中使用它,我是否需要刪除引號或類似內容?

還有什么看起來我可能在這里做錯了?

service.php

public function getSearch($query)
    {
        return $this->get("/search/search?query={$query}" );
    }

我還為控制器和功能設置了新的路徑

Route::post('autocomplete','Controller@autoComplete');

Controller.php這樣

public function autoComplete(Request $request)
{

   $search_result = $request->search_result;

   $service = new service();

   //$search_result = "test"; /*this hard coded value works for passing*/
    $searchResults = $service->getSearch($search_result);

    return $searchResults;
}

view.blade.php

$('#productInput').on('input', function(){
if($(this).val() === ''){
   return;
}else{

   const searchResult = $(this).val(); 

   $.ajax({ url: '/account/autocomplete', 
            data: {
                'search_result':searchResult
            },
            type: 'POST', 
            success: function(response){
                console.log(response);
            }
        });
    }

});

把它添加到你的頭上

<meta name="csrf-token" content="{{ csrf_token() }}">

並將令牌傳遞給ajax:

$('#productInput').on('input', function(){
if($(this).val() === ''){
   return;
}else{

   const searchResult = $(this).val(); 

   $.ajax({ url: '/account/autocomplete', 
            data: {
                'search_result':searchResult
            },
            "_token": "{{ csrf_token() }}", // **** THIS LINE IS ADDED ***** //
            type: 'POST', 
            success: function(response){
                console.log(response);
            }
        });
    }

});

我從這個答案中拿出了ajax部分,感謝Deepak saini 如果這個答案解決了你的問題,請給他的答案加分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM