我试图让我的网站使用另一个文件中的 Ajax,但它永远不会工作,除非代码实际上在 View 中。
该网站成功调用了我的其他 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文件不支持blade语法。因此,要从外部js文件发送ajax请求需要执行以下操作:
为您的 template.blade.php 文件创建一个全局变量,如下所示:
var SITE_URL = "{{URL::to('/')}}";那么什么时候发送ajax请求:
$.ajax({ 网址:SITE_URL + '/route_name' });
关于javascript - Laravel 站点不在外部 javascript 文件中使用 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35137821/