小编nik*_*cub的帖子

为什么现代浏览器不支持PUT和DELETE表单方法?

我刚刚为我的一个最新应用程序构建了一个RESTful API.我还构建了一个简单的管理界面脚手架类,它将枚举资源并构建简单的表单和表来编辑,创建,删除等.

为了更新和删除资源,该类输出一个带有PUT和DELETE方法的表单,非常简单:

<form action="/posts/xxxxxxx" method="DELETE">
<input type="submit" value="Delete" />
</form>
Run Code Online (Sandbox Code Playgroud)

<form action="/posts/xxxxxxx" method="PUT">
<input type="text" name="username" value="nikcub" />
<input type="text" name="fullname" value="Nik Cubrilovic" />
<input type="text" name="email" value="nikcub@email.com" />
<input type="submit" value="Update" />
</form>
Run Code Online (Sandbox Code Playgroud)

非常简单.如果检测到Javascript,则它将拦截表单并使用XMLHTTPRequest提交回来.Javascript支持其他HTTP方法,但为什么现代浏览器不支持PUT和DELETE方法?它最终发送一个GET.

我希望当应用程序优雅地回退到使用相同方法的标准HTML时,而不是必须在类中使用隐藏字段和逻辑,或者更糟糕的是,将方法放在URI中并允许GET工作.

我想不出为什么浏览器不支持其他HTTP方法的任何原因,因为开发人员无论如何都是通过黑客攻击GET或使用POST来解决它.

我搜索了一个答案,并且能够找到它作为XHTML 2.0规范的一部分.在HTML5规范中没有提到它.

是否有任何理由不支持"HTML5兼容"浏览器?我在哪里可以发布请求以打开此备份并在浏览器中实现它?

html browser specifications

33
推荐指数
3
解决办法
2万
查看次数

返回MongoDB中字段的实际类型

在MongoDB中,使用$type,可以根据字段是否与BSON数据类型匹配来过滤搜索(请参阅DOCS).

例如.

db.posts.find({date2: {$type: 9}}, {date2: 1})
Run Code Online (Sandbox Code Playgroud)

返回:

{ 
    "_id" : ObjectId("4c0ec11e8fd2e65c0b010000"), 
    "date2" : "Fri Jul 09 2010 08:25:26 GMT" 
}
Run Code Online (Sandbox Code Playgroud)

我需要一个查询,告诉我该字段的实际类型是什么,对于集合中的每个字段.这可能与MongoDB有关吗?

mongodb mongodb-query aggregation-framework

15
推荐指数
3
解决办法
3万
查看次数

Python中的函数用于清理和标准化URL

我使用URL作为键,所以我需要它们是一致的和干净的.我需要一个python函数,它将获取一个URL并清理它,以便我可以从数据库中获取.例如,它将采取以下措施:

example.com
example.com/
http://example.com/
http://example.com
http://example.com?
http://example.com/?
http://example.com//
Run Code Online (Sandbox Code Playgroud)

并输出一个干净的一致版本:

http://example.com/
Run Code Online (Sandbox Code Playgroud)

我浏览了std libs和github,找不到这样的东西

更新

我找不到一个Python库来实现这里和RFC中讨论的所有内容:

http://en.wikipedia.org/wiki/URL_normalization

所以我现在正在写一个.这比我最初设想的要多得多.

python url

4
推荐指数
2
解决办法
8786
查看次数