问题标签 [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 投票
2 回答
2747 浏览

asmx - 可以将 ASMX 配置为响应 HTTP 1.1 OPTIONS 请求吗?

似乎 ASMX 隐含地不允许使用 OPTIONS 动词。我发布这个问题是因为我使用带有 POST 的 jQuery AJAX 调用,它首先在发出 POST 动词**之前向服务器查询可用的选项。

默认情况下,Web.config 将所有动词映射到旧版 ASMX,如此部分配置示例所示,因此应正确路由所有内容:

但是,对于 OPTIONS 请求,HTTP 响应始终为 405。例如,给出以下请求:

并总是导致:

jQuery AJAX 调用如下所示,这是最近Encosia 博客文章中关于使用 ASMX 的建议:

**注意:我不想将客户端切换为使用 GET 而不是 POST。

摘要问题:
我可以将 ASP.NET 配置为允许 ASMX 本身无错误地处理 OPTIONS 请求吗?

我考虑过的其他想法

  • 我可以寻找一种方法来告诉jQuery.ajax(..)不要在 POST 之前发出 OPTIONS 动词?

  • 如果我对传统 ASMX 的要求是不可能的,我考虑了另外两个潜在的想法:

    1. 实现 a System.Web.IHttpHandler,将其粘贴在 web.confighandlers部分以仅管理对默认 ASMX 行为之外的verbs=OPTIONS请求。path=*.asmx这将是一个可行的解决方法。
    2. 我可以切换到使用 WCF。但是我想先知道 ASMX 是否太笨拙。

在我采取行动之前,我想向社区查询我可能忽略的事情,或者更好的选择(没有双关语)。

更新#1

是的,我的网络服务托管在不同的域上。显然,使用相同的原始策略导航有很多问题。这次更新绝对是值得考虑的问题的上下文信息!
但是我想确保这个问题停留在 ASMX 服务器和 HTTP 级别。尽管我在不久的将来可能会遇到相关的浏览器问题,但这些对于解决这个问题的 HTTP 协议级别并不重要。谢谢。

0 投票
4 回答
3763 浏览

web-services - 定义幂等性

所以“幂等性”可以定义为:

一个动作,如果执行 N 次,则与只执行一次该动作具有相同的效果。

明白了,够简单的。

我的问题是关于这个定义的微妙之处——一个动作本身是否被认为是幂等的,或者你是否还必须考虑传递给动作的数据?

让我用一个例子来澄清:

假设我有一个更新某些资源的 PUT 方法,我们将调用它f(x)

显然,f(3)是幂等的,只要我提供 3 作为输入。同样明显的是,f(5)将改变资源的值(即,它将不再是 3 或以前的任何值)

所以当我们谈论幂等性时,我们是指像(即,f(x))这样的动作/函数的泛化,还是指的是动作/函数+传递给它的数据(即,f(3))?

0 投票
1 回答
644 浏览

asp.net - 表单身份验证。获取 web.config 中指定角色的允许动词

我在 web.config 中为角色指定了动词。这很好用,如果角色尝试在页面 Test.aspx 中发布,角色观察者将被重定向到登录页面。例子:

但是,当用户尝试在 Test.aspx 页面中进行 POST 时,这会让用户感到有些困惑。我想通知用户在实际点击任何内容之前不允许他/她发帖。像这样的东西:

所以,问题是:我在哪里可以访问这些信息?

0 投票
1 回答
1935 浏览

ruby-on-rails - destroy_user_session 在设计中不起作用

我正在使用 rails 3.1.3 并设计 1.5.3,当我添加destroy_user_session_path到我的布局文件时,链接不起作用。我可以正常登录,但是当我单击此路径时,出现此错误:

但是,如果我运行 rake 路线,我会看到这条路线:

所以这条路线显然使用了 DELETE 动词。我可以通过添加来获得工作路径:method => :delete,但为什么我必须这样做?路线在那里并且已经配置为删除,所以怎么了?

0 投票
1 回答
1015 浏览

asp.net-mvc - 为什么 System.Web.Mvc.HttpVerbs 类缺少 TRACE、CONNECT 和 OPTIONS?

RFC 2616 HTTP/1.1 定义指出存在以下常见的 HTTP 方法:

GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT

但是System.Web.Mvc.HttpVerbs枚举缺少 TRACE、OPTIONS 和 CONNECT。

我有一个动作过滤器,它从请求中提取 HttpVerb 以做出某些决定(例如,如果一个请求是 PUT'ing 基本类型 A 的模型,那么我设置了一些数据),所以这个实用程序代码正在为最后三个请求抛出 ArgumentOutOfRangeException(主要是 OPTIONS - 看起来它来自谷歌翻译):

不知道如何解决这个问题 - 有什么想法吗?

我能想到的唯一一件事是更改所有引用代码以首先检查原始 HTTP 方法,然后仅在不是 TRACE、OPTIONS 或 CONNECT 时调用该实用程序。这有点骇人听闻。

为什么枚举类中缺少它?有什么具体原因吗?MVC 不能处理这些类型的请求吗?

通过 OPTIONS 方法的声音,它甚至不应该到达 MVC,它应该由 IIS 本身处理?

0 投票
2 回答
79 浏览

asp.net-mvc-3 - 在 Restful ASP.NET MVC 应用程序中使用所有 Html 动词的最直接方法是什么?

到目前为止,我一直只是在我的控制器上使用postget操作。

我想在我的应用程序中使用所有主要动词,以便 [a] 遵守休息标准,并且 [b] 好吧,不要专门使用 get 和 post。

我想使用的其他动词是

  • 删除
  • 修补

实现这一目标的最直接方法是什么?我知道所有必需的动词(除了patch)都可用于[AcceptVerbs(...)],但我不完全确定如何实现它们。

0 投票
2 回答
10848 浏览

model-view-controller - 如何在 IIS7 中启用 DELETE 动词?

我通过 AJAX 和 Delete 动词方法进行了调用,但来自 IIS 服务器的响应是 405 Method Not Allowed。

我读过它。显然一切正常,我没有安装 webDAV。我试图定义处理程序、模块等......但我无法成功!!!。

这是详细的错误信息:

模块静态文件模块

通知 ExecuteRequestHandler

处理程序静态文件

错误代码 0x80070001

有人也得到这个错误吗?有什么亮点吗?

0 投票
1 回答
495 浏览

ruby-on-rails - Rails 路由和 HTTP 动词

我的应用程序是一个锻炼计划程序。

客户通常在一天中的三个时间段之一进行锻炼,因此我提供了一个快速添加功能来安排早上、中午或晚上的锻炼。

我有代码工作,但我不认为我这样做是正确的。

我的路线如下:

我通过这样的方式使用它:

现在,如果请求通过 GET 传入,这可行,但根据 HTTP 协议方法定义,这似乎不正确。似乎 POST 或 PUT 是正确的,但如果我添加:via => :post:put到路由,整个事情都会因路由错误而出错。

这里什么是正确的,实现这种功能的正确方法是什么?

0 投票
2 回答
1399 浏览

http - 如何处理 REST 中的陈旧数据?

例如,如果我调用 GET 来获取一个项目,用 DELETE 删除它并再次 GET,那么第二个 GET 应该如何工作?

我的意思是,通过正确遵循 REST 原则,这样做的正确方法是什么,因为 GET 可以被缓存等等?在 REST 中处理陈旧数据的方法是什么?

0 投票
1 回答
1237 浏览

http - REST API、HTTP 动词和访问日志

在设计它们时,我一直在尝试遵循良好的 RESTful API 实践。其中一个恰好是非常简单和常见的,但越来越难以理解:

  • 使用GEThttp 动词检索资源

为什么?假设您有一个 URI 来获取这样的帐户信息:

AXY_883772银行系统中的帐户 ID 在哪里。安全审核将发出警告,指出:

  1. 帐户 ID 将出现在 HTTP 访问日志中
  2. 帐户 ID 可能会缓存在浏览器的历史记录中(即使不太可能定期使用浏览器来访问 RESTful API)

他们最终通过“推荐”POST应该使用动词来结束。

所以,我的问题是:

我们对于它可以做些什么呢?只需遵循安全建议并避免GET大部分时间使用?使用某种特殊的 APACHE/IIS/NGINX 访问日志配置来避免记录对某些 URL 的访问?