当我通过 ajax 将字符串变量传递给 laravel 中的控制器时,它没有显示正确的数据
When I pass string variables to controller in laravel via ajax, It doesn't show me proper data
这是我的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);
}
这是你的控制器
public function editTask($id, $newTask){
//$x = $id->get('task_id');
print_r($id);
print_r($newTask);
}
这是我得到的响应,但我实际上想要通过 ajax 传递的正确字符串值
您在这里传递的是原始字符串
editob.open('POST', '/{task_id}/{newTask}', true);
这就是为什么它在 php 中工作而不在 js 中工作,供 JS 使用
editob.open('POST', '/' + task_id + '/' + newTask, true);
实际上,您的脚本显示了您要求的正确数据
editob.open('POST', '/{task_id}/{newTask}', true);
这里你的 URL 看起来像这样。因为你发送的是字符串而不是值
http://your-domain.com/{task_id}/{newTask}
你需要做的是
editob.open('POST', `/${task_id}/${newTask}`, true);
这是我的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);
}
这是你的控制器
public function editTask($id, $newTask){
//$x = $id->get('task_id');
print_r($id);
print_r($newTask);
}
这是我得到的响应,但我实际上想要通过 ajax 传递的正确字符串值
您在这里传递的是原始字符串
editob.open('POST', '/{task_id}/{newTask}', true);
这就是为什么它在 php 中工作而不在 js 中工作,供 JS 使用
editob.open('POST', '/' + task_id + '/' + newTask, true);
实际上,您的脚本显示了您要求的正确数据
editob.open('POST', '/{task_id}/{newTask}', true);
这里你的 URL 看起来像这样。因为你发送的是字符串而不是值
http://your-domain.com/{task_id}/{newTask}
你需要做的是
editob.open('POST', `/${task_id}/${newTask}`, true);