首页 > 解决方案 > 如何在 Ajax 中使用 Laravel 路由格式连接 url?

问题描述

我有这样的 Ajax 错误代码:

$.ajax({
    type: "GET",
    dataType: "json",
    url: "{{ route('siswa-tugas-get-soal-opsi', ['id_pilihan_ganda' => "+val.id+"]) }}",
    success: function (data) {
          console.log(data.options);
    }
});

如果网址我重写为:(它有效)

url: "{{ route('siswa-tugas-get-soal-opsi', ['id_pilihan_ganda' => 3]) }}",

"+val.id+"是错的?

标签: javascriptjqueryajaxlaravel-5

解决方案


是的,因为你正在混淆bladejavascript

{{ route('siswa-tugas-get-soal-opsi', ['id_pilihan_ganda' => 3]) }}代码将Laravel Blade Engine在页面加载时呈现(在服务器中)。但这里val.id是一个 Javascript 变量。它将在页面加载后执行。

解决方案

您需要保存$val['id']在 PHP 中而不是 Javascript。并尝试,

{{ route('siswa-tugas-get-soal-opsi', ['id_pilihan_ganda' => $val['id']]) }}

或者

您需要用 Javascript 编写硬编码 URL。(不是最佳做法)喜欢,

url: "your/url/route/"+val.id+"/rest/path",

推荐阅读