我尝试异步发送数据到控制器的方法。我认为这是一个微不足道的挑战,但并没有找到答案。这是我的代码:
控制器
public function actionRaiting(string $idUser, string $idBook, int $number )
{
$model = new Raiting();
$model->idBook = $idBook;
$model->idUser = $idUser;
$model->number = $number;
if (\Yii::$app->request->isAjax)
{
if ($model->load(\Yii::$app->request->post()))
$model->save();
}
}
脚本
$('.rating-input i').click(function()
{
$.ajax(
{
url: 'raiting',
type: "POST",
contentType: 'application/json',
data: {
idUser: $('[name=idUser]').val(),
idBook: $('[name=idBook]').val(),
number: $(this).data("value") ,
},
dataType : 'json'
});
});
我收到400错误“未指定必需的参数”。您能解释一下我该怎么做吗?非常感谢!
您的方法期望这些值作为GET
参数。您正在将它们传递到POST
体内。通常,我建议将参数附加到url。
但是,由于您要将数据保存到数据库中,这应该通过来完成POST
,因此建议您从函数中删除参数。保存之前,应在模型中完成所有要进行的验证。
public function actionRaiting() {
...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句