<legend id='Ut3fA'><style id='Ut3fA'><dir id='Ut3fA'><q id='Ut3fA'></q></dir></style></legend>
        • <bdo id='Ut3fA'></bdo><ul id='Ut3fA'></ul>
        <i id='Ut3fA'><tr id='Ut3fA'><dt id='Ut3fA'><q id='Ut3fA'><span id='Ut3fA'><b id='Ut3fA'><form id='Ut3fA'><ins id='Ut3fA'></ins><ul id='Ut3fA'></ul><sub id='Ut3fA'></sub></form><legend id='Ut3fA'></legend><bdo id='Ut3fA'><pre id='Ut3fA'><center id='Ut3fA'></center></pre></bdo></b><th id='Ut3fA'></th></span></q></dt></tr></i><div id='Ut3fA'><tfoot id='Ut3fA'></tfoot><dl id='Ut3fA'><fieldset id='Ut3fA'></fieldset></dl></div>
        <tfoot id='Ut3fA'></tfoot>
      1. <small id='Ut3fA'></small><noframes id='Ut3fA'>

      2. 在 yii2 中访问 post json 数据时出错

        时间:2023-10-15
      3. <small id='zvIlu'></small><noframes id='zvIlu'>

        <i id='zvIlu'><tr id='zvIlu'><dt id='zvIlu'><q id='zvIlu'><span id='zvIlu'><b id='zvIlu'><form id='zvIlu'><ins id='zvIlu'></ins><ul id='zvIlu'></ul><sub id='zvIlu'></sub></form><legend id='zvIlu'></legend><bdo id='zvIlu'><pre id='zvIlu'><center id='zvIlu'></center></pre></bdo></b><th id='zvIlu'></th></span></q></dt></tr></i><div id='zvIlu'><tfoot id='zvIlu'></tfoot><dl id='zvIlu'><fieldset id='zvIlu'></fieldset></dl></div>

        <legend id='zvIlu'><style id='zvIlu'><dir id='zvIlu'><q id='zvIlu'></q></dir></style></legend>

            <bdo id='zvIlu'></bdo><ul id='zvIlu'></ul>

              • <tfoot id='zvIlu'></tfoot>
                  <tbody id='zvIlu'></tbody>
                • 本文介绍了在 yii2 中访问 post json 数据时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

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

                  Am passing data to yii2 using ajax request but i keep on getting a 500 error

                  这是ajax请求代码:

                  This is the ajax request code:

                  <?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) 这会返回

                  When i do console.log(keys) this returns

                  [0, 1]
                  

                  这是我的控制器代码:

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

                  上面总是执行post请求的错误部分,可能有什么问题;

                  The above always executes the error part of post request, What could be wrong;

                  推荐答案

                  您将 JSON 作为编码(发布)数据体发送,而不是键值对.所以你的方法行不通.

                  You are sending your JSON as encoded (post) data body, not key value pairs. So your approach is not working this way.

                  有两种方法可以解决这个问题:

                  There are two options to fix this:

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

                  虽然从长远来看第一个选项是首选,但第二个选项作为快速解决方案非常简单.

                  While the first option is preferred in the long run, the second option is pretty simple as a quick fix.

                  首先,确保您将应用配置为解析 JSON 正文内容.在 config.php 中添加这个到 components 数组:

                  First, make sure you configure your app to parse JSON body conten. IN config.php add this to the components array:

                  'request' => [
                      'parsers' => [
                          'application/json' => 'yiiwebJsonParser',
                      ]
                  ]
                  

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

                  Then in your controller use this to get the JSON parameters:

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

                  这篇关于在 yii2 中访问 post json 数据时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:Yii2:多个事件附加视图 下一篇:根据数据库结果设置 Yii2 catchAll 路由

                  相关文章

                  • <bdo id='BmrHa'></bdo><ul id='BmrHa'></ul>
                  <i id='BmrHa'><tr id='BmrHa'><dt id='BmrHa'><q id='BmrHa'><span id='BmrHa'><b id='BmrHa'><form id='BmrHa'><ins id='BmrHa'></ins><ul id='BmrHa'></ul><sub id='BmrHa'></sub></form><legend id='BmrHa'></legend><bdo id='BmrHa'><pre id='BmrHa'><center id='BmrHa'></center></pre></bdo></b><th id='BmrHa'></th></span></q></dt></tr></i><div id='BmrHa'><tfoot id='BmrHa'></tfoot><dl id='BmrHa'><fieldset id='BmrHa'></fieldset></dl></div>
                  <legend id='BmrHa'><style id='BmrHa'><dir id='BmrHa'><q id='BmrHa'></q></dir></style></legend>

                    <small id='BmrHa'></small><noframes id='BmrHa'>

                    1. <tfoot id='BmrHa'></tfoot>