繁体   English   中英

Rest Api PUT方法不接收值

[英]Rest Api PUT method not receiving values

我在Ajax / Jquery中有此代码,在这里我试图向我的API请求PUT方法。 在我的代码中,我试图发送在文本字段中已更新的数据。 该数据应该由API接收,然后将其发送到模型,该模型应用于根据接收到的ID更新数据库中的记录。 由于某些原因,控制器中的REST API无法从文本字段接收值。

我发送数据的代码:

$("#edit").on("click", function() {
     var updatedData ={ question: $('#questionField').val(),
                        image: $('#imageField').val(),
                        answer1: $('#answer1Field').val(),
                        answer2: $('#answer2Field').val(),
                        answer3: $('#answer3Field').val(),
                        answer4: $('#answer4Field').val(),
                         };
      $.ajax({
              url : '../admincontroller/getdatabasedata/', 
              type: 'PUT',
              dataType: 'json', 
              data: updatedData,

              success: function(updatedQuestion)
              {
                JSON.stringify(updatedQuestion);
                if(updatedQuestion.ok == 1) {
                  alert("Succesfully edited");
                }
                else{
                  alert(updatedQuestion.ok);
                }
              }
          });
    return false; 
  });

我的REST API的代码,应在其中接收数据:

    else if ($this->input->server('REQUEST_METHOD') == 'PUT' )
            {
                    $id = $this->input->post('idField');
                    $question = $this->input->post('questionField');
                    $image = $this->input->post('imageField');
                    $answer1 = $this->input->post('answer1Field');
                    $answer2 = $this->input->post('answer2Field');
                    $answer3 = $this->input->post('answer3Field');
                    $answer4 = $this->input->post('answer4Field');

if($question != '' && $image != '' && $answer1 != '' && $answer2 != '' && $answer3 != '' && $answer4 != ''){
                        $this->adminmodel->updateQuestion($id,$question,$image,$answer1,$answer2,$answer3,$answer4);
                        echo json_encode(array('ok' => 1));
                    }
                    else{
                        echo json_encode(array('ok' => $question));
                    }   

            }

目前,我正在尝试提醒是否传递了数据,但我只是得到NULL。 知道为什么吗? 谢谢。

我认为数据必须是字符串。 对象将转换为查询字符串,这就是您在此处看到的。

数据:JSON.stringify(updatedData)而不是updatedData

遵循类似的数据协定结构和参数名称。 如果您使用的是原始类型,请在url中传递它们,或在api函数中标记body中发送的原始类型。 使用JSON.stringify(object)作为用于发送对象的Ajax调用的数据。 确保在服务器上启用了HTTP动词。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM