在yii2中访问发布json数据时出错

杰夫

我正在使用ajax请求将数据传递到yii2,但我不断收到500错误

这是ajax请求代码:

<?php 
 $script = <<< JS

     $('form#forward_pr').on('beforeSubmit', function(e){
    var keys = $('#grid').yiiGridView('getSelectedRows');
     $.post({
       url: "forwardpr", // your controller action
       dataType: 'json',
       data: {keylist: keys},
       success: function(data) {
          alert('I did it! Processed checked rows.')
       },
     error: function(err){
       console.log("server error");
       }
    });
       return false;
    }  ) ;

    JS;
    $this->registerJS($script);
 ?>

当我做console.log(keys)这返回

[0, 1]

这是我的控制器代码:

if (Yii::$app->request->post()) {
         echo $post = json_encode($_POST['keys']);
          if (isset($_POST['keylist'])) {
                $keys = \yii\helpers\Json::decode($_POST['keylist']);
              print_r($keys);
            }else{
              echo "1";
          }

上面的代码总是执行发布请求的错误部分,这可能是什么错误;

杰拉普特雷

您将以已编码(发布)数据主体(而不是键值对)的形式发送JSON。因此,您的方法无法以这种方式工作。

有两个选项可解决此问题:

  1. 将您的控制器重构为RESTful服务
  2. 在您的控制器中使用JSON主体而不是POST参数

从长远来看,第一个选项是首选,但第二个选项作为快速修复很简单。

首先,请确保配置您的应用程序以解析JSON正文内容。INconfig.php将其添加到components数组中:

'request' => [
    'parsers' => [
        'application/json' => 'yii\web\JsonParser',
    ]
]

然后在您的控制器中使用它来获取JSON参数:

$model->load(Yii::$app->getRequest()->getBodyParams());

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

授予对Yii2中模块的访问权限

来自分类Dev

使用Yii2将图像嵌入邮件中时出错

来自分类Dev

Yii2:如何访问模板邮件中的参数?

来自分类Dev

如何在Yii2中访问定义的URL

来自分类Dev

在yii2中实现TimestampBehavior时出错

来自分类Dev

Gridview函数yii2中的访问变量

来自分类Dev

在yii2中使用访问控制

来自分类Dev

Yii2 .htaccess阻止访问后端中的图像

来自分类Dev

访问json数据时出错

来自分类Dev

从PHP中的发布请求写入xml数据时出错

来自分类Dev

如何在yii2中访问模块的模型

来自分类Dev

从yii2中的模型类访问数据

来自分类Dev

Yii2 AssetBundle中的Javascript未在更新时发布

来自分类Dev

部署yii2-starter-kit Yii2安装时出错

来自分类Dev

Yii2中模块的访问控制

来自分类Dev

yii2:-如何管理yii2中的angularjs发布请求

来自分类Dev

Yii2访问新控制器中的动作

来自分类Dev

如何在Yii2中访问定义的URL

来自分类Dev

在yii2中实现TimestampBehavior时出错

来自分类Dev

如何在Yii2中创建/访问动作?

来自分类Dev

通过yii2中的javascript加载表单时无法获取数据

来自分类Dev

在yii2中使用访问控制

来自分类Dev

Yii2 .htaccess阻止访问后端中的图像

来自分类Dev

在YII2中无法访问时,将默认页面设置为禁止访问(#403)

来自分类Dev

在 yii2 中安装 philippfrenzel/yii2fullcalendar 包时出错

来自分类Dev

Angular 2:从 HTTP 访问 JSON 时出错

来自分类Dev

YII2:使用 YII2 将 javascript 函数添加到传单等值线地图时出错

来自分类Dev

Yii2 如何将接收到的 JSON 数据保存到数据库中

来自分类Dev

在 yii2 中运行原始 SQL 时获取 SQL 查询语法错误或访问冲突

Related 相关文章

热门标签

归档