【问题标题】:Call laravel route from js file从js文件调用laravel路由
【发布时间】:2015-09-13 09:21:51
【问题描述】:

我第一次使用 Laravel 5,当刀片调用 JS 文件时,我有一个刀片,其中包含一个 JS 文件。它无法识别 URL: 这就是我在 JS 文件中调用我的 URL 的方式:

 $.ajax({
        type: "POST",
        cache: false,
        url : "{{URL::to('zone')}}",
        data: {'ma':$('select[name=ma]').val()},
        success: function(data) {
            ...
        }
    });

当我在 myBlade.blade.php 中包含此代码时,它工作正常,但从 JS 文件中我得到了 403 错误

【问题讨论】:

    标签: javascript ajax laravel-5


    【解决方案1】:

    Blade 不处理 JavaScript 文件,只处理带有 blade.php 扩展名的文件

    解决方案可能是为全局配置对象提供您感兴趣的路由集合。

    假设您有两个单独的文件:index.blade.php 加上 main.js

    1) index.blade.php

    <script>
        // global app configuration object
        var config = {
            routes: {
                zone: "{{ URL::to('zone') }}"
            }
        };
    </script>
    <script src="main.js"></script>
    

    2)main.js

    $.ajax({
        type: "POST",
        cache: false,
        url : config.routes.zone,
        data: {'ma':$('select[name=ma]').val()},
        success: function(data) {
            ...
        }
    });
    

    【讨论】:

    • 我认为 var config = { routes: { zone: "{{ URL::to('zone') }}" } };为真(在路由后使用“{”而不是“[”:)
    【解决方案2】:

    在 Laravel 和 codeigniter 中,简单的方法是
    获取基本 URL 路径
    这里我用户

    //code here
    var path = {!! json_encode(url('/')) !!}
    
    $.ajax({
        type: "POST",
        cache: false,
        url : path+'/zone',
        data: {'ma':$('select[name=ma]').val()},
        success: function(data) {
            ...
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2016-07-17
      • 1970-01-01
      • 2023-04-01
      • 2017-08-14
      • 1970-01-01
      • 2020-03-23
      • 2017-02-10
      • 2021-07-11
      • 2017-12-16
      相关资源
      最近更新 更多