【问题标题】:getting 404 not found when submitting form using ajax in laravel在laravel中使用ajax提交表单时找不到404
【发布时间】:2017-08-11 16:48:15
【问题描述】:

我是 laravel 的新手,在使用 ajax 时将数据发布到 laravel 中的控制器时遇到问题。我的视图包含一个从数据库中填充的选择框,当用户从选择框中选择一个值时,我试图调用 ajax,这将返回用户工资的详细信息。问题是它给了我 404 not found 错误。

控制器文件的代码如下所示。

    this function is defined inside a controller

    public function getPostSalary()
        {
            echo "ajax called";
            return 'true';
        }

路由文件是

Route::post('company/salary-user', 'CompanyController@getPostSalary');

这是我调用控制器的 ajax 代码

<script>
    $(document).ready(function() {
        $('#employee').change(function () {
            var values = $('#employee').val();
            if (values == '') {
                $.pnotify({
                    title: 'Message',
                    text: 'Please Select a User.',
                    type: 'error',
                    delay: 3000
                });
                return false;
            }
            var csrf = $('#csrf').val();
            $.ajax({
                url: '{!! URL::to("company/salary-user")!!}',
                type: "POST",
                data: { user_id: values, _token: csrf },
                cache: false,
                beforeSend: function () {

                },
                success: function (data) {
                    console.log(data);
                    $('#loader').hide();
                }
            });
        }); 
    });
</script>

有人可以帮我找出问题所在以及调用我的函数应该做什么。

【问题讨论】:

  • 您的 ajax 文件在 *.js 中?还是在您的刀片模板内?
  • 在您的网络跟踪中,当事件employee 发生变化时,您指向的网址是什么?
  • 我的 js 文件在刀片模板中,它显示的 url 是
  • 查看我的答案

标签: php ajax laravel


【解决方案1】:

单引号用于字符串,因此您的网址不会按预期生成。像这样使用

  url : "{!! URL::to('company/salary-user')!!}",

【讨论】:

    【解决方案2】:

    您可以使用直接网址,如

     $.ajax({
                url:'company/salary-user',
                type: "POST",
                data: { user_id: values, _token: csrf },
                cache: false,
                beforeSend: function () {
    
                },
                success: function (data) {
                    console.log(data);
                    $('#loader').hide();
                }
            });
    

    【讨论】:

      【解决方案3】:

      替换这一行:

      {!! URL::to("company/salary-user")!!}
      

      作者:

      {{ url('/company/salary-user') }}
      

      {{ route('/company/salary-user') }}
      

      【讨论】:

      • 它给了我同样的问题
      • 大声笑,天哪,我太垃圾了,使用{{ url('/company/salary-user') }}{{ route('/company/salary-user') }}
      • 问题就在这里
      • 现在您指向的实际网址是什么?并且不要忘记清除浏览器缓存
      • 当使用url('/company/salary-user') ?
      猜你喜欢
      • 1970-01-01
      • 2016-01-23
      • 2013-07-28
      • 2016-12-16
      • 1970-01-01
      • 2020-01-09
      • 2015-02-05
      • 2020-07-14
      • 2019-05-04
      相关资源
      最近更新 更多