问题标签 [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.

0 投票
1 回答
102 浏览

hyperlink - 是否可以有一个带有动词(方法/动作)POST、PUT 或 DELETE 的 html 超链接?

除了 GET 之外,还有其他动词可以通过直接的 html 超链接发送吗?

您知道任何说明为什么 html 超链接只使用 GET 方法的文档吗?

0 投票
2 回答
3101 浏览

knockout.js - 无法解决网络错误:405 方法不允许

我有一个使用 OData 和 Knockout Js 的应用程序。在我的应用程序中,我使用 POST、GET 和 DELETE HTTP 动词,当我托管我的应用程序时,GET 和 POST 不会引发任何错误,但 DELETE 会引发错误,不知道如何修复它。

以下是我使用 DELETE 的地方

错误是

我如何解决它

0 投票
1 回答
258 浏览

http - HTTP PUT 上下文中幂等性的含义?

这个关于 REST 的演示文稿中(时间戳 17:00-18:45),演讲者说 HTTPPUT必须包含资源的所有属性,并且不能用于部分更新。这在 HTTP 中是必需的,否则它不是幂等的。

他对幂等性的定义是(这听起来很合理):

幂等是可以执行一次或多次并导致相同服务器状态的任何操作

然而,他接着举了一个例子,其中(意译):

请求 A:我使用 aPUT仅更新资源的 name 属性。

请求 B:我使用 aPUT仅更新描述。

在 A 和 B 之间,另一个客户端可以指定名称,然后在请求 B 之后,资源具有另一个客户端的名称和我的描述。因为请求 A 和 B 之后服务器状态不一样,所以这不是幂等操作。

我不确定这种解释:对我来说,幂等性只告诉你当你连续多次运行相同的操作时会发生什么。在上面的例子中,请求 A 和 B 是两个不同的操作,所以没有理由认为运行 A then B 应该有什么特别的保证;特别是,没有理由认为它们应该一起构成一个原子操作。

多次运行请求 A 与运行一次具有相同的效果(对于 B 也是如此),所以我认为它是幂等的(即使PUT由于其他原因这是不正确的使用)。

我的理解不正确吗?

(注意:这是一个关于幂等性含义的问题,而不是 的适当使用PUT)。

0 投票
1 回答
3090 浏览

kendo-ui - Web API + OData - PATCH 请求 400 错误

我有一个链接到 WebApi 2 OData 控制器的 KendoUI 数据源,并且在更新操作时遇到问题。我可以创建和删除就好了。

当我在进行任何更新后调用将数据源同步到服务器时,出现 400 错误:

Visual Studio 中的调试显示补丁函数正在传递 Id 而不是 Company 对象。Firebug 显示 PATCH 请求如下所示:

我有一种预感,服务器不理解这个问题。

该模型很简单,我将控制器保留为 VS 为我生成的任何内容:

模型:

控制器:

最后,KendoUI,HTML/Javascript 是这样的:

0 投票
2 回答
135 浏览

rest - 更多 REST 动词的解决方法

我正在开发一个帐户有角色的游戏网站。我正在使用以下路线:

但是我需要deleteundelete(它们是软删除的)字符,虽然使用表单是正确的方式delete,但当我可以只使用 GET 链接时,它变得不必要(是吗?)膨胀character/{name}/delete。此外,没有用于取消删除/恢复的动词。

解决此问题的正确且简单的方法是什么(如果没有完美的方法,则两者兼而有之)?

0 投票
1 回答
37 浏览

html - 如何通过 DELETE HTTP 动词提交内容

如何通过 DELETE HTTP 动词发送数据或提交到 URL,它有什么好处以及浏览器支持如何?

谢谢,

0 投票
3 回答
479 浏览

asp.net - 在 MVC 中使用的有效 ViewBag

我需要为 HttpVerb 使用相同的 ViewBag 对象,这些对象是 HttpGet 和 HttpPost。因此,我不想两次声明 ViewBags。我创建了一个参数方法,并且每当我想将其用作以下示例时,我都会调用此方法。是真实的方式还是您对此问题有任何解决方案?

0 投票
1 回答
45 浏览

rest - 这应该是 POST 还是 PUT

所以我知道 PUT 是幂等的,而 POST 不是。假设我有一个“添加到团队”类型的方法。如果您还没有加入指定的团队,您将被添加。如果您已经在团队中,那么什么都不会发生。

因此,我认为应该是 PUT,而不是 POST,因为无论我调用它一次还是一百万次,服务器上的结果都是一样的。你在团队中。

这是正确的想法,还是我仍然感到困惑?

0 投票
1 回答
479 浏览

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?

0 投票
1 回答
4559 浏览

rest - 如何将大量数据发送到无状态的 RESTful 检索服务

这似乎是一个非常基本的问题,如果之前有人问过这个问题,我们深表歉意;请指出任何有用资源的方向。

所以我有一个 RESTful 服务来检索一些数据。但是,RESTful 服务需要一定数量的数据才能进行检索。该数据可以粗略地概括为“用户上下文”数据——服务需要使用该信息来执行检索的有关用户的信息(无论是由调用应用程序存储还是先前从另一个应用程序检索)。

由于 REST 在语义上工作,因此检索某些内容的正确动词(HTTP 方法)是 GET 请求。我见过的大多数示例 GET 请求只使用少量数据,并且数据通过 URL 传递。但是,一旦我们进入需要大量数据来进行检索的服务领域,将所有这些信息都放在 URL 中似乎是错误的。不仅如此,某些组件(通常是 255 个字符左右,IIRC)对 URL 长度有已知的限制。

似乎可用的选项是:

  • 使用 POST 在请求正文中发送数据。但是,这不是语义,因为我们没有要求服务更新任何内容,只是检索。
  • 将大部分信息(在我的例子中是“用户上下文”)放入 HTTP 标头中。但是,这“感觉不对”,因为标题应该用于标题,而不是数据。
  • 发出多个请求以在多个 URL 中发送数据。然而,这似乎打破了无状态的目标,因为服务必须保持某种状态才能将请求捆绑在一起。
  • 将数据写入数据库,然后将密钥传递给服务以从那里检索数据。然而,这将导致请求不是自包含的,并且还会引入性能瓶颈。

还有其他选择吗?这里的最佳做法是什么?