我使用的是Yii 2.0基本版,我需要一些帮助。 我创建了一个像这样的ajax函数:
function eliminarColaborador(id) {
$.ajax({
type: "GET",
async: false,
url: "<?= urldecode(Url::toRoute(['colaborador/ajaxEliminarColaborador'])) ?>",
dataType: 'json',
data: {
'id': id
},
complete: function ()
{
},
success: function (data) {
if (data !== null)
{
// SUCCESS
}
else
{
// ERROR
}
}
});
}
我在控制器中的行动:
public function actionAjaxEliminarColaborador($id) {
if (Yii::$app->request->isAjax) {
$continuar = false;
if(isset($id) && $id > 0) {
var_dump($model); die;
$continuar = true;
}
echo CJSON::encode(array('continuar'=>$continuar));
Yii::$app->end();
}
}
我在萤火虫中找到了这个错误:未找到(#404):找不到页面。
我尝试了一切,但我无法弄清楚问题是什么。 如果我将ajax网址更改为 urldecode(Url :: toRoute([&#39; colaborador / delete&#39;])),错误就会消失,一切正常。
也许我需要在ColaboradorController中声明我的新动作 ajaxEliminarColaborador ,但我不知道如何。
有什么问题?
答案 0 :(得分:1)
<强>控制器强>
public function actionAjaxEliminarColaborador(){}
<强> AJAX 强>
urldecode(Url::toRoute(['colaborador/ajax-eliminar-colaborador']))
答案 1 :(得分:0)
应该是<?= urldecode(Url::toRoute(['colaborador/ajax-eliminar-colaborador'])) ?>
。 Here你可以了解原因。
答案 2 :(得分:0)
使用以下命令更改ajax响应:
url: '/colaborador/ajaxEliminarColaborador/$id',
data: {id: $id,_csrf: yii.getCsrfToken()},
答案 3 :(得分:-2)
尝试删除&#39; ajax&#39;在你的网址上。