Laravel网站在外部javascript文件中不使用Ajax


Laravel site not using Ajax in external javascript file

我正在尝试让我的网站使用另一个文件中的Ajax,但除非代码实际在视图中,否则它永远不会起作用。

该站点成功调用了我的另一个Javascript文件,但似乎无法识别其中包含Ajax的文件。

以下是我的外部Javascript文件中,其中包含Ajax(ajax.js):

$(document).ready(function(){
    $("#idForm").submit(function(e) {
        $.ajax({
            type: "POST",
            url: "{{ url('/auth/login') }}",
            data: $("#idForm").serialize(),
            success: function(data)
            {
              location.reload(); 
            }
        });
        e.preventDefault(); // avoid to execute the actual submit of the form.
    });
});

以下是我的主布局文件中,该文件成功使用了form.js文件,但不是ajax.js。

<html>
<body>
<!--Other Stuff-->
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script type="text/javascript" src="http://localhost/sitename/public/js/forms.js"></script>
<script type="text/javascript" src="http://localhost/sitename/public/js/ajax.js"></script>
</body>
</html>

有什么想法吗?

默认情况下,外部 js 文件不支持刀片语法。因此,要从外部 js 文件发送 ajax 请求,需要执行以下操作:

  1. 为 template.blade.php 文件创建一个全局变量,如下所示:

    var SITE_URL = "{{URL::to('/')}}";
  2. 然后何时发送 Ajax 请求:

    $.ajax({网址: SITE_URL + '/route_name'});