首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有HTML的HTTP删除

带有HTML的HTTP删除
EN

Stack Overflow用户
提问于 2014-06-10 20:20:43
回答 1查看 754关注 0票数 0

在webapp2中,我无法使HTTP请求正确工作。作为一种解决办法,我使用的是与GET不同的URI,但我更喜欢使用更多的RESTful方法。

使用此代码,服务器日志将删除请求显示为GET请求。我在这里错过了什么?

代码语言:javascript
复制
class TeamPages(webapp2.RequestHandler):
    def get(self, team_name):
        ...

    def post(self, team_name):
        ...

    def delete(self, team_name):
        key_name = team_name.upper()
        Team.delete(key_name)
        self.redirect('/teams')

对/teams/{{ team_name }的GET请求使用包含以下html的页面进行响应,但当我提交时,它将请求GET方法而不是DELETE方法。

代码语言:javascript
复制
<form action="/teams{{ team.team_name }}" method="delete">
    <button type="submit">Delete</button>
</form>

更新

更多信息..。我是在Google下开发的,我在Mac上使用Chrome。以下是显示GET而不是DELETE的请求头.

代码语言:javascript
复制
GET /teams/hornets? HTTP/1.1
Host: localhost:9080
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: dev_appserver_login="test@example.com:True:185804764220139124118"
Referer: http://localhost:9080/teams/hornets
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36

这是响应头..。

代码语言:javascript
复制
HTTP/1.1 405 Method Not Allowed
allow: DELETE
Cache-Control: no-cache
Content-Length: 187
content-type: text/html; charset=UTF-8
Date: Tue, 10 Jun 2014 21:24:36 GMT
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Server: Development/2.0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-11 00:42:22

简短的回答:问题不在于web框架或浏览器。这是一个HTML限制。HTML只允许GET和POST。不允许使用其他方法。我调整了标题以更准确地反映主题。

更多详细信息:

基于@Greg的HTML线索,我搜索了更多。在相关员额的评论中,@Guandalino添加了一些很棒的链接:

*错误报告16071

*堆栈交换

这有助于在HTML规范中添加一些支持和反对PUT和DELETE的颜色和参数。

对我来说(我是个新手),这种与HTTP的不兼容似乎与REST原则不一致。我认为,仅仅承认这么多的web框架已经创建了解决方案,就足以证明在未来的HTML版本中制定这一标准是有理由的。

感谢大家的反馈!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24150161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档