【问题标题】:Page Doesn't Refresh, Validation doesn't works, Page doesn't get redirect but the logic is working页面不刷新,验证不起作用,页面没有重定向但逻辑正常
【发布时间】:2021-03-03 16:33:04
【问题描述】:

我使用 laravel 和 ajax 制作了一个简单的表单,它只接收来自用户的电子邮件来订阅时事通讯。提交表单时,它既不显示成功消息,也不显示错误消息。此外,表单验证不起作用。这是我处理请求的控制器

public function store(Request $request)
  {
          $count = Subscription::where('email', '=' ,$request->email)->count();
          if($count == 1) {
              return redirect()->route('index')   
                          ->with('error','ERROR!! Email Already Subscribed.');
          }
          else
          {
              $request->validate([
                  'email' => 'required',
              ]);
              Subscription::create($request->all());
              return redirect()->route('home')
                      ->with('success','Subscribed !!');
          }     
  }

在这里,我检查了电子邮件是否已经注册,并且这个逻辑工作正常。如果电子邮件已经存在,则不会插入记录,但不会显示错误消息。

这是我用刀片编写的 Ajax 文件,用于监听表单请求并重定向到控制器

 <script type="text/javascript">
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    $('#subsEmail').on('submit',function(event){
        event.preventDefault();
        let email = $('#email').val();

        $.ajax({
          url:"{{ url('/subscription') }}",
          type:"POST",
          data:{
            email:email,
            _token:"{{ csrf_token() }}",
          }
         });
        });
      </script>

提前致谢。

【问题讨论】:

    标签: ajax laravel


    【解决方案1】:

    这里不用重定向,只返回一个带有消息的数组。

    【讨论】:

    • 谢谢。使用return response()-&gt;json([ 'success'=&gt; 'Email aready Exists']); 显示消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    相关资源
    最近更新 更多