从js文件调用laravel路由

时间:2015-06-26 12:11:22

标签: javascript ajax laravel-5

我第一次使用Laravel 5,当刀片调用JS文件时,我有一个刀片,其中包含一个JS文件。它无法识别网址: 这就是我在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错误

2 个答案:

答案 0 :(得分:5)

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

的文件

解决方案可能是提供一个全局配置对象,其中包含您感兴趣的路径集合。

假设您有两个单独的文件:index.blade.phpmain.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) {
        ...
    }
});

答案 1 :(得分:2)

在Laravel中,同样在codeigniter简单的Approch是
获取基本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) {
        ...
    }
});