restful delete body中的put,delete如何实现呢?必须要ajax吗

学习笔记(8)
在使用Ajax实现Restful的时候,有时候会出现无法Put、Delete请求参数无法传递到程序中的尴尬情况,此时我们可以有两种解决方案:1、使用地址重写的方法传递参数。2、配置web.xml项目环境。
的程序为:
@RequestMapping(value = &/member&, method = RequestMethod.PUT, produces = &application/charset=UTF-8&)
public @ResponseBody Object edit(Member vo1) {
(&【*** 修改用户信息 ***】& + vo1);
JSONObject obj = new JSONObject();
obj.put(&flag&, true);
}12345671234567
一、使用地址重写的方法来实现put、delete请求的参数传递。&
在js页面中(
$(editMember).on(&click&,function(){
url : &member?empno=1009&ename=阿伦&sal=19777.77&hiredate=& ,
type : &put& ,
dataType : &json& ,
success : function(data) {
$(showDiv).append(&&p&修改处理结果:& + data.flag + &&/p&&) ;
error : function(data) {
$(showDiv).append(&&p&对不起,出错啦!&/p&&) ;
12345678910111213141234567891011121314
二、使用配置文件修改来实现Put和Delete请求的参数传递&
1、解决Put请求的参数传递,但是&无法解决 Delete&请求的传递&
①、在项目中的web.xml文件中配置:
&filter-name&HttpMethodFilter&/filter-name&
&filter-class&org.springframework.web.filter.HttpPutFormContentFilter&/filter-class&
&filter-mapping&
&filter-name&HttpMethodFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&1234567812345678
②在js文件中:
$(editBut).on(&click&,function(){
url: &member&,
type : &put&,
empno : 1170,
ename : &SMITH&,
sal : 11.1,
hiredate : &&
success : function(data){
$(showDiv).append(&&p& 数据更新成功:&+data.flag+&&/p&&);
console.log(1);
dataType : &json&,
error : function(data){
$(showDiv).append(&&p&对不起,出错啦!&/p&&);
});12345678910111213141516171819201234567891011121314151617181920
2、解决&Put和Delete&请求的参数传递。&
①、在项目中的web.xml文件中配置:
&HiddenHttpMethodFilter&
&org.springframework.web.filter.HiddenHttpMethodFilter&
&HiddenHttpMethodFilter&
&springmvc&
123456789123456789
②在js文件中:
$(editBut).on(&click&,function(){
url: &member&,
type : &post&,
_method : &put&,
empno : 1170,
ename : &SMITH&,
sal : 11.1,
hiredate : &&
success : function(data){
$(showDiv).append(&&p& 数据更新成功:&+data.flag+&&/p&&);
console.log(1);
dataType : &json&,
error : function(data){
$(showDiv).append(&&p&对不起,出错啦!&/p&&);
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4545次
排名:千里之外
转载:33篇
(2)(12)(11)(5)(7)PHP开发工程师@温州。博客关于:技术、生活、读书、互联网。
RESTful简介
RESTful (Representation State Transfer)&描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。RESTful&指的是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计就是 RESTful。
这里对什么是RESTful不作详细的论述,具体大家可以参考阮一峰的博客
简单来说,RESTful架构就是一组约束条件和规则:
每一个URI代表一种资源。
客户端和服务器之间,传递这种资源的某种表现层。
客户端通过四个HTTP动词(GET、POST、PUT、DELETE),对服务器端资源进行操作,实现&表现层状态转化&。
比如一个电影的网站,REST 的 URI 可设计为:
GET &&&&&&&/movie&&&&&&&&&&&&&&//电影列表
GET &&&&&&&http:///movie/123&&&&&&//查看某部电影
POST &&&&&http:///movie&&&&&&&&&&&&&//添加电影
PUT &&&&&&&http:///movie/123&&&&&&//修改某部电影
DELETE&&http:///movie/123 &&&&&//删除某部电影
RESTful架构的技术可行性
基于RESTful架构的网站好处有很多,但我们也要测试在项目用应用RESTful是否有兼容性问题,即HTTP的4个动作(GET/POST/PUT/DELETE)在服务端和浏览器端是否都能正常发送和接收。由于GET和POST这2个method已经快被我们用烂了,我们只要测试下PUT和DELETE这2个method。
客户端浏览器方面:
由于历史原因,目前浏览器的&form&标签只支持GET和POST,但是通过ajax技术,几乎所有的主流浏览器都支持GET/POST/PUT/DELETE这4个方法,测试代码如下:
$.ajax({url:'/rest',type:'put',success:function(data){
&&&&&&& alert(&浏览器支持PUT:&+data);
$.ajax({url:'/rest',type:'delete',success:function(data){
&&&&&&&&alert(&浏览器支持DELETE:&+data);
本人相继测试了IE6、IE8、chrome、firefox、safari、UC、安卓原生浏览器、iphone4 safari等浏览器,都能正常运行。
如果你使用了前端MVC框架如、backbone等,那就更棒了!它们提供的RESTful模块能让我们的操作变得更加简单和富有表现力。服务端方面(以PHP为例):
我们知道PHP分别提供了$_GET和$_POST这2个超全局数组分别用于处理get和post请求,但是却没有$_PUT和$_DELETE来处理put和delete。怎么办?没关系,自己封装一个(怎么封装百度一下)。
另外目前几乎所有主流的PHP框架都对RESTful提供了很好的支持,如Laravel、zend、symfony等。
Laravel的路由:
Route::put('/rest',function(){&echo 'true';&&});
Route::delete('/rest',function(){&echo 'true';&&});
Laravel的资源控制器让围绕资源构建RESTful模式变得更加简单:
Route::resource('photo','PhotoController');
经过测试,在项目中使用RESTful架构是完全可行的。
RESTful虽好,可不要贪杯哦。具体情况还要灵活使用,不要被它捆住。
热度 ( 2 )
很喜欢此文字
很喜欢此文字
| Powered by}

我要回帖

更多关于 restful delete 参数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信