Laravel 控制器中有这段代码:
public function put_in_favorites(Request $request)
$is_active = $request->get('is_active');
if ($is_active)
{
return 'this is true';
}
else
{
return 'this is false';
}
它从 ajax 请求中获取$is_active的值:
$('.bpt-heart').on('click', function (){
$(this).toggleClass('Active');
let IsActive;
if ($(this).hasClass('Active'))
{
IsActive = true;
}
else
{
IsActive = false;
}
dataId = this.getAttribute('data-id');
// console.log(dataId);
$.ajax({
url: 'favorites',
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: {
is_active: IsActive,
data_id: dataId
},
success: function (data)
{
console.log(data);
},
error: function (err)
{
console.log('Error');
console.log(err);
}
});
});
但是,这对我来说总是返回 true,尽管如果返回$is_active,它会根据需要更改为true和false。如何根据$is_active变量在控制器中处理这两种情况?
在浏览器中查看通过网络发送的内容。该变量很可能作为字符串传递。
true
因此,她总是 因此,要么进行严格的比较,要么直接发送json,例如,或者发送1/0。https://ru.stackoverflow.com/a/701146/191482 - 在服务器端调试也很有用
这是解决方案:
他以字符串的形式感知它。感谢大家的回复。