亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我從 jquery ajax 調用中得到 HTML 響應

為什么我從 jquery ajax 調用中得到 HTML 響應

神不在的星期二 2021-06-03 14:33:44
我試圖在我的 Laravel 項目中使用 jQuery UI 自動完成功能來在用戶輸入時顯示一些建議。這是用戶輸入時觸發的腳本:$(".autocomplete").autocomplete({source: function(request, response) {    $.ajax({        url: '/autocomplete',        dataType: "json",        data: {            term : request.term,            field : $(this.element).prop("id")        },        success: function(data) {            console.log(data);            response(data);        },        error: function(result, status, error) {            console.log(result);            console.log(status);            console.log(error);        }    });},min_length: 0, });這是我在 web.php 中的路線Route::get('/autocomplete', 'SitesController@autocomplete');最后我的控制器從數據庫中檢索結果。public function autocomplete(Request $request) {    $term = \Request::get('term');    $field = \Request::get('field');    $sites = Site::where($field, 'ILIKE', '%'.$term.'%')    ->distinct()    ->get([$field]);    $data = [];    foreach($sites as $key => $site) {        $data[] = $site->$field;    }    return \Response::json($data);}這目前不起作用,但是當我直接將上述代碼添加到我的路由文件時,它運行良好。Route::get('/autocomplete', function(){    $term = \Request::get('term');    $field = \Request::get('field');    $sites = Site::where($field, 'ILIKE', '%'.$term.'%')    ->distinct()    ->get([$field]);    $data = [];    foreach($sites as $key => $site) {        $data[] = $site->$field;    }    return \Response::json($data);});我的腳本正在返回一個 HTML 響應,這是我從控制臺得到的錯誤:SyntaxError: Unexpected token < in JSON at position 0    at parse (<anonymous>)    at ajaxConvert (VM258 app.js:18060)    at done (VM258 app.js:18530)    at XMLHttpRequest.<anonymous> (VM258 app.js:18832)我不明白為什么我的腳本沒有返回 JSON 而是 HTML,而當我將我的腳本放入 web.php 文件時它會返回。
查看完整描述

2 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

在app/Exceptions/Handler.php文件中你可以做這樣的事情


public function render($request, Exception $e)

{

    if ($request->wantsJson()) {

        $response = ... // put your response data here

        return response()->json($response);

    }

    ...

}


查看完整回答
反對 回復 2021-06-13
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

正如 aynber 所建議的,仔細查看返回的 HTML 頁面,我意識到這是一個錯誤頁面,當有人試圖在沒有權限的情況下訪問頁面時,由于中間件,我拋出了這個錯誤頁面。我的控制器當然首先檢查這個中間件。我對自動完成功能做了一個例外,現在一切正常,但我覺得我沒有以好的方式處理我的中間件......


查看完整回答
反對 回復 2021-06-13
  • 2 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號