问题标签 [httpverbs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hyperlink - 是否可以有一个带有动词(方法/动作)POST、PUT 或 DELETE 的 html 超链接?
除了 GET 之外,还有其他动词可以通过直接的 html 超链接发送吗?
您知道任何说明为什么 html 超链接只使用 GET 方法的文档吗?
knockout.js - 无法解决网络错误:405 方法不允许
我有一个使用 OData 和 Knockout Js 的应用程序。在我的应用程序中,我使用 POST、GET 和 DELETE HTTP 动词,当我托管我的应用程序时,GET 和 POST 不会引发任何错误,但 DELETE 会引发错误,不知道如何修复它。
以下是我使用 DELETE 的地方
错误是
我如何解决它
http - HTTP PUT 上下文中幂等性的含义?
在这个关于 REST 的演示文稿中(时间戳 17:00-18:45),演讲者说 HTTPPUT
必须包含资源的所有属性,并且不能用于部分更新。这在 HTTP 中是必需的,否则它不是幂等的。
他对幂等性的定义是(这听起来很合理):
幂等是可以执行一次或多次并导致相同服务器状态的任何操作
然而,他接着举了一个例子,其中(意译):
请求 A:我使用 a
PUT
仅更新资源的 name 属性。请求 B:我使用 a
PUT
仅更新描述。在 A 和 B 之间,另一个客户端可以指定名称,然后在请求 B 之后,资源具有另一个客户端的名称和我的描述。因为请求 A 和 B 之后服务器状态不一样,所以这不是幂等操作。
我不确定这种解释:对我来说,幂等性只告诉你当你连续多次运行相同的操作时会发生什么。在上面的例子中,请求 A 和 B 是两个不同的操作,所以没有理由认为运行 A then B 应该有什么特别的保证;特别是,没有理由认为它们应该一起构成一个原子操作。
多次运行请求 A 与运行一次具有相同的效果(对于 B 也是如此),所以我认为它是幂等的(即使PUT
由于其他原因这是不正确的使用)。
我的理解不正确吗?
(注意:这是一个关于幂等性含义的问题,而不是 的适当使用PUT
)。
kendo-ui - Web API + OData - PATCH 请求 400 错误
我有一个链接到 WebApi 2 OData 控制器的 KendoUI 数据源,并且在更新操作时遇到问题。我可以创建和删除就好了。
当我在进行任何更新后调用将数据源同步到服务器时,出现 400 错误:
Visual Studio 中的调试显示补丁函数正在传递 Id 而不是 Company 对象。Firebug 显示 PATCH 请求如下所示:
我有一种预感,服务器不理解这个问题。
该模型很简单,我将控制器保留为 VS 为我生成的任何内容:
模型:
控制器:
最后,KendoUI,HTML/Javascript 是这样的:
rest - 更多 REST 动词的解决方法
我正在开发一个帐户有角色的游戏网站。我正在使用以下路线:
但是我需要delete
和undelete
(它们是软删除的)字符,虽然使用表单是正确的方式delete
,但当我可以只使用 GET 链接时,它变得不必要(是吗?)膨胀character/{name}/delete
。此外,没有用于取消删除/恢复的动词。
解决此问题的正确且简单的方法是什么(如果没有完美的方法,则两者兼而有之)?
html - 如何通过 DELETE HTTP 动词提交内容
如何通过 DELETE HTTP 动词发送数据或提交到 URL,它有什么好处以及浏览器支持如何?
谢谢,
asp.net - 在 MVC 中使用的有效 ViewBag
我需要为 HttpVerb 使用相同的 ViewBag 对象,这些对象是 HttpGet 和 HttpPost。因此,我不想两次声明 ViewBags。我创建了一个参数方法,并且每当我想将其用作以下示例时,我都会调用此方法。是真实的方式还是您对此问题有任何解决方案?
rest - 这应该是 POST 还是 PUT
所以我知道 PUT 是幂等的,而 POST 不是。假设我有一个“添加到团队”类型的方法。如果您还没有加入指定的团队,您将被添加。如果您已经在团队中,那么什么都不会发生。
因此,我认为应该是 PUT,而不是 POST,因为无论我调用它一次还是一百万次,服务器上的结果都是一样的。你在团队中。
这是正确的想法,还是我仍然感到困惑?
ruby-on-rails - Rails: What in my code determines which http verb is used in a route 'call'?
On the Rails Routing from the outside in page, in section 2.2, there's talk of how the http verbs and URLs are used to match 4 URLs to 7 paths.
In section 2.3 it explains how helper paths are available and, sure enough, there are the 4 paths that appear to correspond with those in the table in section 2.2.
I'd like to know what determines which VERB is used when a path is called. For instance, say I have resource :photos
and I call:
WHAT tells me which of the 3 available verbs for that option (GET, PUT/PATCH or DELETE - according to the table in section 2.2 above) will be included as part of the route?
rest - 如何将大量数据发送到无状态的 RESTful 检索服务
这似乎是一个非常基本的问题,如果之前有人问过这个问题,我们深表歉意;请指出任何有用资源的方向。
所以我有一个 RESTful 服务来检索一些数据。但是,RESTful 服务需要一定数量的数据才能进行检索。该数据可以粗略地概括为“用户上下文”数据——服务需要使用该信息来执行检索的有关用户的信息(无论是由调用应用程序存储还是先前从另一个应用程序检索)。
由于 REST 在语义上工作,因此检索某些内容的正确动词(HTTP 方法)是 GET 请求。我见过的大多数示例 GET 请求只使用少量数据,并且数据通过 URL 传递。但是,一旦我们进入需要大量数据来进行检索的服务领域,将所有这些信息都放在 URL 中似乎是错误的。不仅如此,某些组件(通常是 255 个字符左右,IIRC)对 URL 长度有已知的限制。
似乎可用的选项是:
- 使用 POST 在请求正文中发送数据。但是,这不是语义,因为我们没有要求服务更新任何内容,只是检索。
- 将大部分信息(在我的例子中是“用户上下文”)放入 HTTP 标头中。但是,这“感觉不对”,因为标题应该用于标题,而不是数据。
- 发出多个请求以在多个 URL 中发送数据。然而,这似乎打破了无状态的目标,因为服务必须保持某种状态才能将请求捆绑在一起。
- 将数据写入数据库,然后将密钥传递给服务以从那里检索数据。然而,这将导致请求不是自包含的,并且还会引入性能瓶颈。
还有其他选择吗?这里的最佳做法是什么?