Laravel ajax帖子(找不到ajax请求)

时间:2016-03-21 01:59:38

标签: laravel laravel-5.1

我正在尝试在laravel 5.1中发送ajax请求。但我不能得到ajax请求。它始终是HTTP请求。

我有一个html表单

<form role="form" method="POST" action="/admin/save-drug" id="add_drug">

<label for="drugs_name">Drug Name <span class="text-danger">*</span></label>
<input type="text" class="form-control" name="drugs_name" id="drugs_name">

<label for="drugs_name">Drug Name <span class="text-danger">*</span></label>
<input type="text" class="form-control" name="drugs_name" id="drugs_name">

<button type="submit" id="save_drug" class="btn btn-default waves-effect waves-light btn-md">
</form>

我使用ajax

$(document).ready(function(){
            $('#add_drug').submit(function  (){
                $.ajax({
                    url: './admin/save-drug',
                    type: 'POST',
                    data : { 'drugs_name':$('input[name=drugs_name]').val()},

                        success: function(data){
                            alert(data)
                        }
                });
            });
        });

我的控制器

public function saveDrug(Request $request){
        if($request->ajax()){
            return "AJAX";
        }else{
            return "HTTP";
        }
    }

它总是返回“HTTP” 我的代码有什么问题???

2 个答案:

答案 0 :(得分:1)

从我在您的代码中看到的内容来看,没有任何内容可以像浏览器一样停止提交表单。

我的猜测是,如果您打开检查器,打开保存网络日志并提交表单,您将看到您的AJAX请求和标准表单提交。

我认为您可能需要阻止表单提交事件,以便它不会冒泡,允许您的AJAX运行,但停止表单正常提交。

以下是JavaScript的样子:

$(document).ready(function(){
    $('#add_drug').submit(function (e) {
        e.preventDefault(); //Stop the form from submitting
        $.ajax({
            url: './admin/save-drug',
            type: 'POST',
            data : { 'drugs_name':$('input[name=drugs_name]').val()},

                success: function(data){
                    alert(data)
                }
        });
    });
});

答案 1 :(得分:0)

试试这个: 添加csrf_token

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">    
$(document).ready(function(){
            var token='{{csrf_token()}}';
                $('#add_drug').submit(function  (){
                    $.ajax({
                        url: './admin/save-drug',
                        type: 'POST',
                        data : { 'drugs_name':$('input[name=drugs_name]').val(),_token:token},
                            success: function(data){
                                alert(data)
                            }
                    });
                    return false;
                });
            });
</script>