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) { // ... } });