我正在尝试让我的网站使用另一个文件中的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 请求,需要执行以下操作:
-
为 template.blade.php 文件创建一个全局变量,如下所示:
var SITE_URL = "{{URL::to('/')}}"; -
然后何时发送 Ajax 请求:
$.ajax({网址: SITE_URL + '/route_name'});