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

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

两种方法一种是通过表单

<!-- 发送put请求 -->

<form action="/blogs/1" method="post">

<input type="hidden" name="_method" value="put" >

<input type="submit" value="更新">

</form>

<!-- 发送delete请求 -->

<form action="/blogs/1" method="post">

<input type="hidden" name="_method" value="delete" >

<input type="submit" value="删除">

</form>

通过添加一个隐藏域更改类型

另一种方法是ajax传值

例如

$ajax({

url:"/test",

type:"put",

data:{}

});

虽然完整的rest架构包括put和delete,但是现在是没有办法直接用这两个方法的,并且这些方法和浏览器是没有关系的,关键是webserver不支持。

看到说可以配置Tomcat的web.xml 文件达到支持这两个方法的目的:http://blog.csdn.net/kthq/article/det...

所以一般处理要么是api丑陋一点,将方法也写在url里,要么是和null的回答一样,一些开发框架提供了input[name="_method"]的方式来实现,如express。

<form method="post" action="/">

<input type="hidden" name="_method" value="put" />

<input type="text" name="user[name]" />

<input type="text" name="user[email]" />

<input type="submit" value="Submit" />

</form>

app.put('/', function(){

console.log(req.body.user)

res.redirect('back')

})

PUT:用来创建一个URL已知资源,或对已知资源进行完全替换。一般用来更新一个已知资源,除非在创建前,自己完全知道要创建的对象的URL。

POST:用来创建一个子资源,不是幂等的,多次执行,将导致多条形同的资源被创建。

PATCH:是对PUT方法的补充,用来对已知资源进行局部更新。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8160684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存