Request to send Laravel AJAX POST is empty

When I pass POST data through AJAX to my controller, it is empty. In AJAX, the data is still present, but after I send it the controller, it says that it is empty.

AJAX:

function usernameCheck() { var input = document.getElementById("usernameInput"); var icon = document.getElementById("userIcon"); var xmlhttp, username = document.getElementById("usernameInput"), message = document.getElementById("usernameMessage"); if (username.value != "") { if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { // FOR DEBUGGING console.log(xmlhttp.responseText); } } } xmlhttp.open("POST", "usernamevalidation", true); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.send("username=" + username.value); } } 

routes.php:

 Route::post('usernamevalidation', ' UserController@validateUsername '); 

UserController.php:

 class UserController extends BaseController { public function validateUsername() { // FOR DEBUGGING dd(Input::all()); } } 

The code I console.logged (which is empty and should contain the username):

 <pre class='xdebug-var-dump' dir='ltr'> <b>array</b> <i>(size=0)</i> <i><font color='#888a85'>empty</font></i> </pre> 
+7
post ajax php laravel
source share
1 answer

In realizing that I am giving my answer here a year after the last comment, I came across some error using Laravel 5.2 and working with XMLHttpRequest objects: finally, I ended up analyzing and comparing the send request that led me to easily configure both:

 xmlhttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8'); 

This resolved my empty responseText . Hope this helps someone else or can be used for future reference.

+3
source share

All Articles