php - Laravel javascript 位置应该可见或公开

标签 php jquery laravel document-root

我有一个 javascript 需要 PHP 提供的根目录路径来调用 JSON 文件。

我不确定这段代码应该在 public/js 还是在我的 template.blade.php 中?

如果它在 public/js 中,那么我必须指定如下所示的绝对路径,因此每次我想更改我的目录名称或域时,我也必须更改路径。

url: "/myBookStore/public/api/book-type/"

    <script>
    $().ready(function(){
    $("#book_type").keyup(function(){
        $.ajax({
             type: "GET",
             url: "/myBookStore/public/api/book-types/" + $("input[name=book_type]").val(),
             dataType: "json",
             success: function(json){
                //do stuff
             }
        });
    });
});
    </script>

如果我把它放在 template.blade.php 中,我可以使用 URL::to('/') 来指定基本 url。但是它必须在公用文件夹的外部,我不确定这是否是好的做法?

模板.blade.php

    <script>
    $().ready(function(){
    $("#book_type").keyup(function(){
        $.ajax({
             type: "GET",
             url: {{ URL::to('/') }} + "/api/book-types/" + $("input[name=book_type]").val(),
             dataType: "json",
             success: function(json){
               //do stuff
             }
        });
    });
});
    </script>

最佳答案

简单地创建一个

<meta name="base_url" content="{{ URL::to('/') }}">

并用javascript读取这个meta标签的内容。

jQuery:

var url = $('meta[name="base_url"]').attr('content');

JavaScript:

var url = document.getElementsByName('base_url')[0].getAttribute('content')

这样你就可以将你的 javascript 放在你的公共(public) js 文件夹中,并且仍然始终获得正确的 url。

关于php - Laravel javascript 位置应该可见或公开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28154687/

相关文章:

javascript - Jquery序列化: trying to pass a form status to an ASP. NET MVC Controller 而不提交表单

jquery - 包括我的另一个插件

php - 如何使用 Laravel Eloquent 将数据存储在多个表中

php - 获取并在 Woocommerce 单一产品页面上显示税率

php - 多级用户登录和 session

javascript - 单击跨度时获取附近的输入元素(onclick 事件)

laravel - 如何检查用户在使用社交媒体登录后是否选择不授予我的应用程序访问权限?

PHP代码不会抛出错误,但数据不会输入数据库

javascript - 连接到数据库的复选框的子复选框

php - 为什么我的 Blade 模板内容显示两次?