关于php:ajax成功后用数据调用另一个控制器的Laravel

Laravel after ajax sucesss calling another controller with data

目前我可以通过 ajax 将表单数据传递给我的控制器以插入到数据库中。这工作正常,插入后我将从控制器获取数据并仅在此 ajax 成功后传递给另一个控制器。目前卡在这里,因为我正在使用这个方法 window.location.href.

1
2
3
4
5
6
7
$.ajax({
method:"POST",
url:"{{ URL::asset('paysubmit') }}",
data: {eID:eID,amount:amount,"_token":"{{ csrf_token() }}" },
success: function(data) {
    window.location.href="{{ URL::asset('/cds') }}";
}

目前在支付提交控制器中,我正在使用此方法返回 view('cds')->with($data);,但我需要在此 ajax 中执行此操作,因为此代码在 php 中?我需要即兴创作这个 window.location.href="{{ URL::asset('/cds') }}";?


您可以使用以下两种方法中的任何一种来解决您的问题:

  • Make another call inside your ajax success function and pass the data received from your first call to second call.

  • In your first controller method after you get the data, call second controller method and then return the result.

您要实现的目标是不合法的,因为您将视图返回到基本上是 html 的 ajax 成功,一旦您重定向到另一个 url,您将丢失数据。


您可以在第一个 ajax 请求的 success 回调中编写另一个调用。并在第二次 ajax 调用中使用从第一次调用中收到的 data

1
2
3
4
5
6
7
8
9
10
11
12
$.ajax({
    method:"POST",
    url:"{{ '/home/view' }}",
    data: { eID:eID},
    success: function(data){
       if (data){
           $.ajax({
               method="POST",
               //other ajax settings here.
           })
       }
});