【问题标题】:laravel ajax post request sending json datalaravel ajax post请求发送json数据
【发布时间】:2020-01-11 18:40:08
【问题描述】:

发出 AJAX 发布请求以及将 JSON 数据发送到 laravel 控制器函数。正在发送的 JSON 数据无法在控制器函数中访问。

所发送的 JSON 数据必须可以在控制器内访问

 $.ajax({
               headers: {
                     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                        },
                url : '/admin/maintenances/afterpayment',
                method : 'POST',
                dataType: "json",
                data :  details,
                contentType : "application/json"
            }).done(function(response){
                alert('success   '+JSON.stringify(response));
                window.location = "dispdetails";
            }).fail(function(jqXHR, textStatus, errorThrown){
                alert('FAILED! ERROR: ' + errorThrown);
            });  

      });
     public function afterpayment(Request $request)
{         $response = array('status' => $request->deatails,'url' => '/dispdetails');
           return response( )->json($response);

            }

在成功执行 AJAX 发布请求后,警报消息中的响应值为 JSON 格式发送的详细信息数据,但显示为 [object Object]。

【问题讨论】:

    标签: ajax post laravel-5.6


    【解决方案1】:

    在您的 laravel 控制器中尝试 json_encode() 方法将您的数据转换为 json 格式。

    public function afterpayment(Request $request)
    {
        $data = array('status' => $request->deatails,'url' => '/dispdetails');
        $response = json_encode($data);
    
        return $response;
    }
    

    【讨论】:

      【解决方案2】:

      发送ajax请求

          // Say it's your request payload
          let details = { name: 'John Doe', city: 'Mumbai', status: 'Payment done'};
          $.ajax({
              headers: {
                  'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
              },
              'url': '/admin/maintenances/afterpayment',
              'type': 'POST',
              'dataType': 'json',
              'data': details,
          }).done(function (response) {
              alert('success: ' + JSON.stringify(response));
              // Redirect to response url
              window.location.replace(response.url);
          }).fail(function(xhr, ajaxOps, error) {
              console.log('Failed: ' + error);
          });
      
      

      在你的 laravel 控制器中

          public function afterpayment(Request $request)
          {
              // Assuming your returning entire request payload
              return response()->json(['status' => $request->all(), 'url' => '/your-redirect-url'], 200);
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-04
        相关资源
        最近更新 更多