Skip to content
Advertisement

Send POST request from an external site to Laravel

I want a way to send POST from a PHP site to another one built with Laravel (the second one) to return a JSON value!

The PHP site (I use jQuery to send this POST):

$('#get_link_form').on('submit', function(event){
        $.ajax({
            url:"<?= $d; ?>/link/go/blog",
            method:"POST",
            data: new FormData(this),
            dataType:'JSON',
            contentType: false,
            cache: false,
            processData: false,
            success:function(data)
            {
                if (data.msg != "") {
                   $('#sell_house_submit').html(data.msg);
                } else {
                   $('#sell_house_submit').removeAttr('disabled').attr('href', data.link).html("Get Link!");
                }
            }
        });
        event.preventDefault();
    });

and the second site built with LARAVEL:

public function countlink_blog(Request $request) {

        $link_id = $request->link_id;
        $link = Link::where('link_id', $link_id)->get()->first();
        if ($link) {
            $count = new CountController();
        return response()->json(['link' => $link->redirect, 'msg' => '']);
        } else {
            return response()->json(['link' => '', 'msg' => 'Your Link Is Invalid!']);
        }
}

Strange that I have prepared everything, and the POST is sent successfully, but I cannot receive any result? I don’t understand why? knowing that I removed CSRF from this ROUTE!

Any way to do this in Laravel?

Advertisement

Answer

Move route to api.php in Laravel and set your request header Accept: “application/json”

$.ajax({     
      headers: {          
        Accept: "application/json"
      }     
      data: "data",    
      success : function(response) {  
        // ...
      }
    });

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement