簡體   English   中英

ajax 獲取數據請求 url 未找到但已存在,Laravel 8

[英]ajax get data request url not found but already exist, Laravel 8

大家好,我的 ajax 數據 json 有問題,我有一個關於使用網絡攝像頭掃描條形碼的項目,但它只是查看條形碼的代碼,數據庫中的數據沒有調用我的 Z2705A83A5A0659CCE345837 的代碼,我正在使用模態,這是模態

<div id="myModal" class="modal fade" role="dialog">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="scanModalLabel">Scan Barcode</h5>
                <button type="button" class="close close-btn" data-dismiss="myModal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
            <dl class="row">
                <dt class="col-sm-4"><h4>Kode Barang</h4></dt>
                <dd class="col-sm-8" id="kode_barang"></dd>
            </dl> <hr>
                    <table class="table align-items-center tabel-detail" >
                        <thead class="thead-light">
                          <tr>
                            <th>Nama Barang</th>
                            <th>Harga Jual</th>
                            <th>Stok</th>
                            <th>Insert</th>
                          </tr>
                        </thead>
                        <tbody class="list">
                        </tbody>
                      </table>
            </div>
            <div class="modal-footer">
                
            </div>
        </div>
    </div>
</div>

這是 jquery 代碼

var args = {
        autoBrightnessValue: 100,
        resultFunction: function(res) {
            [].forEach.call(scannerLaser, function(el) {
                $(el).fadeOut(300, function() {
                    $(el).fadeIn(300);
                });
            });
            scannedImg.attr("src", res.imgData);
            scannedQR.text(res.format + ": " + res.code);
            console.log(res.code);
            document.getElementsByName('qrcode')[0].value = res.code;
            var kode= res.code;
            $('#kode_barang').text(': '+kode);
            $.ajax({
                url:"{{ route('daftar_produk.scan') }}",
                method:'GET',
                data:{kode:kode},
                dataType:'json',
                success:function(data)
                  {
                    $('.list').html(data.table_data)
                  }
              });
            $('#myModal').modal('show');
        },

這是 controller

public function cekScan(Request $req)
    {
        $id = $req->get('kode');
        $output='';
        $produk = Produk::findOrFail($id)
        ->where('kode_barang', '=', $id)
        ->select('produks.*')
        ->first();

        $no = 0;
        $data = array();
        foreach ($produk as $list) {
            $no ++;
            $output .= '<tr><td>'.$no.'</td><td>'.$list->nama_barang.'</td><td>'."Rp.".format_uang($list->harga_jual).'</td><td>'.$list->stok.'</td><td><a type="button" data-stok=(('.$list->stok.')) data-id=(('.$list->id.')) data-nama=(('.$list->nama_barang.')) data-kode=(('.$list->kode_barang.')) data-harga=(('.$list->harga_jual.')) class="btn btn-primary btn-pilih" role="button">Insert</a></td></tr>';
        }
        $data = array(
            'table_data' =>  $output
        );
        return json_encode($data);
    }

這是路線

 Route::get('transaksi/scan', '\App\Http\Controllers\ProdukController@cekScan')->name('daftar_produk.scan');

我該怎么辦錯誤說“jquery.min.js:2 GET http://localhost:8080/rezkastore1/%7B%7B%20route('daftar_produk.scan')%20%7D%7D?kode=2135758676 404 (未找到)”

URL 似乎有問題。

您無法訪問 JS 文件中的路由。

在刀片中為 ajaxURL 創建一個全局變量,然后在 JavaScript 中使用。

<script>
var ajaxURL = '{{ route('daftar_produk.scan') }}';
</script>
<script src="xyz.js"></script>

我不知道你是在 Javascript 部分,在 Laravel Blade View 還是在單獨的 JS 文件中編寫。 如果你寫在 Laravel Blade Template 中,你可以使用

    $.ajax({
        url:"{{ route('daftar_produk.scan') }}",

但我建議您在 AJAX 調用中編寫完整的 URL 。 像這樣調用 AJAX :

$.ajax({
    url:"/transaksi/scan",
    method:'GET',
    data:{kode:kode},
    dataType:'json',
    success:function(data) {
        $('.list').html(data.table_data)
    }
});

除了使用findOrFail() ,您可以使用find()或常規where()錯誤處理程序,因為findOrFail()如果找不到任何記錄,將返回404 not found ,這里是cekScan function

public function cekScan(Request $req)
{
    $id = $req->get('kode');
    $output='';
    $produk = Produk::where('kode_barang', '=', $id)->first();

    if (!$produk) {
        return json_encode(['table_data' => 'Barang Tidak Ditemukan']);
    }

    $no = 0;
    $data = array();
    foreach ($produk as $list) {
        $no ++;
        $output .= '<tr><td>'.$no.'</td><td>'.$list->nama_barang.'</td><td>'."Rp.".format_uang($list->harga_jual).'</td><td>'.$list->stok.'</td><td><a type="button" data-stok=(('.$list->stok.')) data-id=(('.$list->id.')) data-nama=(('.$list->nama_barang.')) data-kode=(('.$list->kode_barang.')) data-harga=(('.$list->harga_jual.')) class="btn btn-primary btn-pilih" role="button">Insert</a></td></tr>';
    }
    $data = array(
        'table_data' =>  $output
    );
    return json_encode($data);
}

馬圖努文

暫無
暫無

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

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