如何使用codeigniter框架读取PUT和DELETE请求



我正在使用codeigniter框架创建一个API服务器,我想知道是否可以从任何客户端表单提交中读取PUT和DELETE请求?

用户指南对此没有太多解释。

您可以尝试先检测方法类型,然后将不同的情况分开:

switch($_SERVER['REQUEST_METHOD']){
case 'GET':
...
break;
case 'POST':
...
break;
case 'PUT':
...
break;
case 'DELETE':
...
break;
default:
echo "Unknown Request.";
}

HTML标准不支持<form method="">属性中的PUT,浏览器也不支持它。浏览器通常不支持HTML表单中的GET和POST以外的方法。如果您放置除POSTGET之外的任何其他内容,则应根据规范将其作为GET请求发送。

在表单中使用隐藏的method字段,并放入实际的HTTP。使用此库

在codeigniter中,您可以通过以下方式获取PUT或DELETE的值:$this->输入->raw_input_stream;您可以将字符串url拆分为数组,并使用此方法将数组的值放入对象setarray((您必须在模型中创建此方法才能将每个值设置为right属性你可以通过在你的项目中自定义这个代码来使用:

$method = $this->input->server('REQUEST_METHOD');
if($method === 'PUT')
{
$this->input->raw_input_stream;
$input_data = $this->input->raw_input_stream;

$exploded = array();
parse_str($input_data, $exploded);
$daman = new damancom_model();
$daman->set_array($exploded);
$daman->ID = $exploded["ID"];
$daman->edit_damancom();
}

Codeigniter 3

如果您想使用PUT、DELETE、PATCH或其他奇特的请求方法,则只能通过只能读取一次的特殊输入流来访问它们。

请参阅文档。。。

https://codeigniter.com/userguide3/libraries/input.html#using-php输入流

请确保您的请求具有。。。

Content-Type: application/x-www-form-urlencoded

此外,如果发送输入,您可以通过下面这样的input_stream((方法获取它们。。。

$this->input->input_stream('user_id');

(即更改您在表单上使用的输入名称的user_id(

相关内容

  • 没有找到相关文章

最新更新