Javascript ajax获取数据请求url未找到,但已存在,Laravel 8

Javascript ajax获取数据请求url未找到,但已存在,Laravel 8,javascript,php,jquery,laravel,routes,Javascript,Php,Jquery,Laravel,Routes,大家好,我的ajax数据json有问题,我有一个关于用网络摄像头扫描条形码的项目,但它只是查看条形码的代码,数据库中的数据在我的ajax中没有调用,这是blade的代码,我使用的是模式 这是模态 <div id="myModal" class="modal fade" role="dialog"> <div class="modal-dialog"> <div c

大家好,我的ajax数据json有问题,我有一个关于用网络摄像头扫描条形码的项目,但它只是查看条形码的代码,数据库中的数据在我的ajax中没有调用,这是blade的代码,我使用的是模式 这是模态

<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>
这是控制器

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);
    }

我应该怎么做?错误是“jquery.min.js:2 GEThttp://localhost:8080/rezkastore1/%7B%7B%20route('daftar_produk.scan')%20%7D%7D?kode=2135758646 404(未找到)”

似乎URL有问题

您无法访问JS文件中的路由

在blade中为ajaxURL创建一个全局变量,然后在JavaScript中使用

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

var ajaxURL={{route('daftar_produk.scan')}};

我不知道您是在LaravelBlade视图中还是在单独的JS文件中编写Javascript部分。如果在Laravel刀片模板中编写,则可以使用

    $.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()
或常规
where()
,而不是使用
findOrFail()
,因为
findOrFail()
将返回
404notfound
如果找不到任何记录,下面是
cekScan
函数

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);
}
公共功能cekScan(请求$req)
{
$id=$req->get('kode');
$output='';
$produk=produk::where('kode_barang','=',$id)->first();
如果(!$produk){
返回json_encode(['table_data'=>'Barang Tidak Ditemukan']);
}
$no=0;
$data=array();
foreach($produk作为$list){
$no++;
$output.=''.$no.'.$list->nama_barang.'.“Rp..”格式为($list->harga_jual)。''.$list->stok.“插入”;
}
$data=数组(
“表_数据”=>$output
);
返回json_encode($data);
}

Maturnuwun

以及如何在js文件中调用ajaxURL的var?$.ajax({url:ajaxURL,方法:'GET',数据:{kode:kode},数据类型:'json',成功:函数(数据){$('.list').html(数据.table_数据)});使用全局变量ajaxURL而不是route。我已经在ajax中更改了url,并在blade中创建了全局变量route,但错误仍然是jGET 404(未找到),我在控制器代码中是否出错?js是否在外部js文件中?是的,在外部js文件中您不能在js文件中使用blade语法。在js文件中使用相对或完整url。是的,我正在尝试使用此url的url代码:“/transaksi/scan”,但错误为jquery.min.js:2 GET 404(未找到)我的路由代码有错误吗?你的根url是什么<代码>http://localhost:8080/rezkastore1或
http://localhost:8080
?我正在使用这个函数尝试添加
var ajaxUrlScan=“{{route('daftar\u produk.scan')}”
部分中,并将AJAX中的url更改为:
url:ajaxUrlScan,
我已更改AJAX中的url并在blade中生成全局变量路由,但错误仍然是jGET localhost:8080/Rezkastre1/transaksi/scan?kode=213575858676 404(未找到),控制器代码中是否有错误?
$.ajax({
    url:"/transaksi/scan",
    method:'GET',
    data:{kode:kode},
    dataType:'json',
    success:function(data) {
        $('.list').html(data.table_data)
    }
});
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);
}