Los datos enviados por ajax me da como resultado un array vacio [], cuando quito el codigo del ajax y lo envio por laravel, laravel agarra los valores de los input, quiero pasar los datos para el controlador pero esto me los devuelve vacio, paso los valores por la consola a ver si me lo envia vacios y no, muestro codigo y screenshoot
var names = document.querySelector('#name');
var phones = document.querySelector('#phone')
let save = document.querySelector('#save');
let getUrl = document.forms.createContact;
let urls = getUrl.getAttribute('action')
const saveDate = ( url, var1, var2) => {
let xhttp = new XMLHttpRequest;
let token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
let data = {
_token: token,
name: var1.value,
phone: var2.value
}
xhttp.onreadystatechange = () =>{
if(this.readyState == 4 && this.status == 200){
console.log(data, var1, var2, this.responseText)
}
}
xhttp.open('post', url, true);
xhttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8');
//xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.setRequestHeader('X-CSRF-TOKEN', token);
xhttp.send(data);
console.log(data)
}
save.addEventListener('click', (e)=>{
e.preventDefault();
saveDate(urls, names, phones);
});
Route
Route::resource('contactos', 'Contacts');
Route::post('/contactos', 'Contacts@insertDate')->name('contacts.insertDate');
Controller
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Contact;
class Contacts extends Controller
{
public function __construct(){
//$this->middleware('auth');
}
/**
* Display a listing of the resource.
*
* [@return](https://ed.team/return) \Illuminate\Http\Response
*/
public function index()
{
//
$ejemplo = 'Prueba';
$hola = 'pepito es pepa';
return view('save', compact('ejemplo', 'hola'));
}
public function insertDate(Request $request)
{
// $contactos = new Contact;
// $contactos->name = $request->name;
//$contactos->phone = $request->phone;
return dd($request->all());
}
/**
* Show the form for creating a new resource.
*
* [@return](https://ed.team/return) \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* [@param](https://ed.team/param) \Illuminate\Http\Request $request
* [@return](https://ed.team/return) \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* [@param](https://ed.team/param) int $id
* [@return](https://ed.team/return) \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* [@param](https://ed.team/param) int $id
* [@return](https://ed.team/return) \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* [@param](https://ed.team/param) \Illuminate\Http\Request $request
* [@param](https://ed.team/param) int $id
* [@return](https://ed.team/return) \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* [@param](https://ed.team/param) int $id
* [@return](https://ed.team/return) \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
view blade
<div class="container-form">
<form action="{{ route('contacts.insertDate')}}" method="post" name="createContact">
[@csrf](https://ed.team/csrf)
<input type="text" name="nombre" id="name" class="form-control-sm inputs" placeholder="Persona">
<input type="text" name="phone" id="phone" class="form-control-sm inputs" placeholder="Celular">
<button id="save" class="btn btn-primary btn-sm">Guardar</button>
</form>
</div>
