Esta es mi consulta Ajax
function updateTask() { var task_id = document.getElementById('edit').getAttribute('edit_task_id'); var newTask = document.getElementById('edit_task').value; var csrf = document.querySelector('meta[name="csrf-token"]').content; var close = document.getElementById('close'); var editob = new XMLHttpRequest(); editob.open('POST', '/{task_id}/{newTask}', true); editob.setRequestHeader('X-CSRF-Token', csrf); editob.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); editob.send("task_id=" + task_id, "newTask=" + newTask); console.log(newTask); console.log(task_id); }Este es mi controlador
public function editTask($id, $newTask){ //$x = $id->get('task_id'); print_r($id); print_r($newTask); } Y esta es la respuesta que recibo, pero en realidad quiero el valor de cadena adecuado que pasé a través de ajax 
estás pasando una cadena sin procesar aquí
editob.open('POST', '/{task_id}/{newTask}', true);por eso, funciona en php no en js, para uso de JS
editob.open('POST', '/' + task_id + '/' + newTask, true);en realidad, su secuencia de comandos muestra los datos adecuados de lo que solicita
editob.open('POST', '/{task_id}/{newTask}', true);aquí su URL se parece a esto. porque estás enviando una cadena en lugar de un valor
http://your-domain.com/{task_id}/{newTask}lo que tienes que hacer es
editob.open('POST', `/${task_id}/${newTask}`, true);