HTTP类型伪装¶
当处理HTML表单时,你只可以使用GET或POST这两个HTTP动词。在大多数情况下,这种情况是没有问题的。然而为了支持REST-ful格式的路由, 你需要支持其他更为正确的路由动词。例如DELETE或PUT。由于浏览器不支持这种方式,CodeIgniter提供了一种正在使用的伪装请求类型的方法。 这种方法允许你发起一个POST请求,但是告诉程序这个请求应该被作为另一个请求类型而处理。
为了伪装请求类型,一个名为 _method
的隐藏输入字段需要被添加到表单中。这个字段的值应当是你希望发送的请求类型:
<form action="" method="post">
<input type="hidden" name="_method" value="PUT" />
</form>
这个表单就会被转化成一个PUT请求,并且只要路由和IncomingRequest类能识别的话,这就是一个真正的PUT请求。
你所使用的表单必须得是一个POST请求,GET请求无法被伪装。
注解
请确认你的Web服务器的配置,因为有些服务器默认没有支持所有的HTTP动词,所以必须添加一些额外的包文件来开启这项功能。