【问题标题】:Laravel 5.3 : POST request using Ajax always returning Error 404 in console by jquery.min.jsLaravel 5.3:使用 Ajax 的 POST 请求总是通过 jquery.min.js 在控制台中返回错误 404
【发布时间】:2016-10-25 08:38:28
【问题描述】:

我正在使用Laravel 5.3 并尝试使用Ajax - Jquery 发出POST 请求。 对于我的一生,我无法找到我的代码中的错误。

如果有帮助,我正在尝试使用管理面板中的 ajax 将新的大学详细信息添加到我的表中。我已经确定我正在发出POST 请求并且我的routes/web.php 有一个带有POST 的路由方法来接收请求。

我的master.blade.php 有以下一行:

<meta name="csrf-token" content=" {{ csrf_token() }} ">
<script type="text/javascript" src="{{URL('js/jquery.min.js')}}"></script> //jQuery v2.1.4

在我的view 中,我有以下内部 javascript 脚本。我已经使用@section 和@yield 概念将其渲染为一体。

我的settings/home.blade.php 看起来像这样:

@section('scripts')
 <script type="text/javascript">
 function addCollSubmit()
 {

   $.ajaxSetup({

    headers:{
        'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content')
    }

    });


    var formData = new Array();
    for(var i=0 ; i< coll_no; i++)
    {
       var id = "input[name=coll_name_"+i+"]";
       var temp = $(id).val();
       formData.push(temp);
    }

     $.ajax(
    {
        type:'POST',
        headers : { 
            'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content')
         },
        url:'/admin/settings/addcollege',
        data:formData,
        success:function(data)
        {
            console.log(data);
            $("#reveal-content").html(data);
        },
        error: function(data)
        {
            console.log(data);
        }
    });

   }
  </script>
 @endsection

settings/home.blade.php 中的 form 部分如下所示:

<form method="POST" name="addCollegeForm" action="">
    {{ csrf_field() }}
    <table id="addCollTable">
     <tr>
        <td><input type="text" name="coll_name_0" placeholder="Enter College Name" /></td>
        <td><a class="button primary" onclick="oneMoreColl()" href="#"><i class="fi-plus"></i></a></td>
     </tr>
    </table>
    <table>
     <tr>
        <td colspan="2"><hr/></td>
     </tr>
     <tr>
        <td colspan="2" align="center">                         
        <a href="#addCollSubmit" onclick="addCollSubmit()" class="button success" >Submit</button></td>
     </tr>
    </table>
</form>

我的routes/web.php 有以下行来接收POST 请求:

Route::post('admin/settings/addcollege','SettingsController@postIndex');

postIndex() 确实有一个函数定义来将大学详细信息存储在表中。

每次我提出请求时,它都会在我的开发者工具 - 控制台中生成以下内容:

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost/admin/settings/addcollege 

【问题讨论】:

    标签: jquery ajax http-post laravel-5.3


    【解决方案1】:

    试试下面的网址

     url:"{{url('/admin/settings/addcollege')}}",
    

    【讨论】:

    • Error 404 消失,Error 500 出现,尽管我在整个请求过程中设置并包含了csrf-field。
    • 那么这意味着你的控制器函数中有一个 php 错误
    • 感谢您的洞察力。 :)
    • 如果我想将 jQuery 代码移动到外部文件,应该做哪些适当的更改?现在它是内部的,您的解决方案有效。
    • 将 ajax 移动到外部文件,将 url 放在外部 js 文件引用之前的变量中,这样 ajax 就可以使用 url 访问该变量
    猜你喜欢
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    相关资源
    最近更新 更多