codecamp

CodeIgniter4 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动词,所以必须添加一些额外的包文件来开启这项功能。

CodeIgniter4 内容协商
CodeIgniter4 处理RESTful请求资源
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }