当前位置: 首页 > 知识库问答 >
问题:

laravel请求Ajax不工作

澹台展鹏
2023-03-14

在简单的我的表单,我想使用ajax与$. post和获取和发布请求后,使用$. post和提交表单我的页面是刷新和警报不工作的控制器验证。

控制器中的简单请求ajax无法正常工作

我的形式:

<script type="text/javascript">
$(document).ready(function(){
    $('form').submit(function(){
        name         = $('#name').val();
        family       = $('#family').val();
        email        = $('#email').val();
        currPassword = $('#currPassword').val();
        password     = $('#password').val();
        password_confirmation = $('#password_confirmation').val();

        $.post('{{ URL::route('admin.profile.update') }}' ,
            { 
              name                  : name,
              family                : family,
              email                 : email,
              currPassword          : currPassword,
              password              : password,
              password_confirmation : password_confirmation 
             },
             function(data){
                if(data.errors)
                    alert(data.errors)
            }
        );
        //return false; 
    });

})
</script>

 {{ Form::model($profile, array('route' => array('admin.profile.update', $profile->id), 'method' => 'PUT')) }}

                <div style='padding:10px;font-weight: bold;'>ویرایش مشخصات شخصی</div>
                <table style='width:95%;border:none;font-size:11px;margin: 5px;text-align: left'>
                    <tr>
                        <td width="80px">{{ Form::label('name' , 'نام: ') }}</td>
                        <td>{{ Form::text('name',null , array('id'=>'name', 'class' => 'form-control' )) }}</td>
                    </tr>
                    <tr>
                        <td>{{ Form::label('family' , 'نام خانوادگی: ') }} </td>
                        <td>{{ Form::text('family', null, array('id'=>'family', 'class' => 'form-control')) }}</td>
                    </tr>
                    <tr>
                        <td>{{ Form::label('email' , 'ایمیل: ') }}</td>
                        <td>{{ Form::text('email', null, array('id'=>'email', 'class' => 'form-control ltr')) }}</td>
                    </tr>
                    <tr>
                        <td>{{ Form::label('currPassword' , 'رمز عبور فعلی: ') }}</td>
                        <td>{{ Form::password('currPassword', array('id'=>'currPassword', 'class' =>'form-control ltr')) }}</td>
                    </tr>
                    <tr>
                        <td>{{ Form::label('password' , 'رمز عبور: ') }}</td>
                        <td>{{ Form::password('password', array('id'=>'password', 'class' =>'form-control ltr')) }}</td>
                    </tr>
                    <tr>
                        <td>{{ Form::label('password_confirmation' , 'رمز عبور مجدد: ') }}</td>
                        <td>{{ Form::password('password_confirmation', array('id'=>'password_confirmation', 'class' =>'form-control ltr')) }}</td>
                    </tr>
                    <tr>
                        <td colspan="2">{{ Form::submit('ویرایش مشخصات', array('id'=>'submit','class'=>'btn btn-default' , 'style'=>'float:left')) }}</td>
                        <td></td>
                    </tr>
                </table>
                {{ Form::close() }}

我的控制器:

public function update($id)
    {
        if ( Request::ajax() ){

            $rules = array(
                'name'        => 'required|alpha',
                'family'      => 'required',
                'email'       => 'required|email',
                'currPassword'=> 'required',
                'password'    => 'required|confirmed|min:4',
                'password_confirmation'=>'required',
            );

            $validator = Validator::make(Input::all(), $rules);

            if ($validator->fails()) {
                /*
                return Redirect::to('/admin/profile')
                    ->withErrors($validator)
                    ->withInput();
             */
             return Response::json(array(
                    'errors'=>$validator
                ));
            }
}
}

我的路线:

Route::group(array('before' => 'auth'), function()
{
  Route::resource  ('admin/profile' , 'ProfileController', array('as'=>'profile' , 'before'=>'csrf'));

});

共有1个答案

沈旻
2023-03-14

我相信问题是表单正在提交,因为您没有使用预防默认值(),但我看到您在前面的问题中努力使其正确工作。这就是为什么你的页面令人耳目一新。

您可以使用Form::submit(),而不是使用Form::button(),这将阻止表单提交,从而允许您使用javascript随心所欲。然后,不要使用$('form')。submit()由于未提交,因此将不再工作,请将处理程序附加到按钮的单击事件<代码>$(“#提交”)。on('click',function(){//Code go here})

不幸的是,如果用户在浏览器中没有启用javascript,这会带来负面的副作用,即表单根本无法运行。

此外,根据您使用的浏览器,您应该在使用开发人员工具时查看XHR请求,以查看是否返回任何错误或状态。

 类似资料:
  • 我想用这段代码买它在程序中保持不变,特别是在你喜欢的时候。。。。 Jquery: Html 路线 控制器 当我点击“Calcula”按钮“Procesando,espere por favor…”屏幕上显示apears,但它不加载成功代码,有解决方案吗?? 谢谢!!

  • 我正在使用Laravel 5.6--Jquery Ajax 我将该操作的返回作为带有数据的部分 我将主标记的内容替换为部分标记 除了当结果计数大于10(分页的断点)时,其他一切都正常工作。 我使用来显示控件

  • 我在谷歌云存储上有两个文件:a.wav和b.txt 我想在我的浏览器中播放a.opus,它工作正常。我想读b.txt Google文档告诉我们,如果用户在浏览器中通过了身份验证,他就可以从bucket下载对象。 这将获得一个.wav并播放它。没问题。 现在阅读b.txt,我使用jquery ajax 但这给了我一个错误,控制台中打印了以下内容: CORS策略阻止从源url在https://stor

  • 我正在尝试通过Laravel中的ajax推送一些数据。不幸的是,它不起作用。当我观察网络流量时,我发现: 我试图从JSGrid中获取数据,这很好。数据对象已填充。我查过了。为了进行测试,我刚刚在控制器中返回了一条短消息。但当我发送邮件请求时,它甚至没有被调用。。。 这是我的密码 Javascript: 路线: 控制器: 我期望从控制器方法中获取JSON文本作为responsemessage。但是我

  • 所以我已经研究了好几个小时,尝试了不同的东西,研究了好几个小时都没有结果。调用是在提供user和pass之后获取JWT令牌。 当它到达服务器时,morgan看到有一个请求,但我得到的状态是400。这是我的路线 我很难理解护照是怎么回事。authenticate('localAuth')起作用,因此这是我的策略文件,以备需要 更新:我在检查fiddler上的请求时遇到了某种错误。 ~标题~:132

  • 问题内容: 我试图通过ajax从数据库中删除数据。 HTML: 我的ajax代码: 这是我从数据库中获取数据的查询… 但是当我单击删除链接数据未删除并显示csrf_token不匹配… 问题答案: 您必须在ajax请求中添加 数据 。我希望这样会有用。