问题标签 [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.
rest - 微软 Azure 多媒体服务 REST API 正确性存疑
Azure API 声称是 REST API。我在 REST 中的模式和示例实现和动词中发现了它,当在他们的(假定的)REST API 参考中检查它时,他们似乎发明了一个新动词CancelJob
并通过 HTTP 改变内部状态GET
这似乎与最佳实践相矛盾,是否应该使用 Jobs
资源来实现,DELETE
或者这样做是否正确?
甚至?
wcf - CORS 请求预检请求,以用户代码结尾
我有一组在内部接口上运行的 WCF Web 服务,这些服务由许多其他网站(也仅限内部)调用。域名匹配,只是端口号不同。
我正在向这些 Web 服务发出 AJAX POST 请求,因为它们在技术上不是同一个来源(不同的端口),所以我正在使用 CORS。
在 IE 中一切都很好,(因为我相信 IE 不会将端口视为不同的来源)但是 Opera 和 Firefox 都会发送预检 OPTIONS 请求。
我已将 Web 服务配置为通过 web.config 文件接受这些请求:
我还在我的服务上设置了接口以接受任何 HTTP 动词:
然而,这会导致底层服务被调用,并且由于它没有找到它在 POST 请求中期望的任何细节,以标准的“你发送了一些错误”的响应。
如果我将服务更改为仅接受 POST 请求 - 这实际上是它会通过以下方式以任何相同的方式响应的唯一响应:
然后预检 OPTIONS 得到“405 - Method not allowed”响应。
我究竟做错了什么?我是否应该配置我的服务以回复 OPTIONS 请求,如果是这样,正确的响应是什么?
我假设我可以在服务中获取请求类型并回复 200 - 好的,如果动词是 OPTIONS 然后重新发送实际的 POST - 但是如果我手动执行此操作,浏览器肯定会再次发送 OPTIONS 作为这是一个新的要求。
编辑:
我刚刚发现这篇文章,关于删除 WEBDAV 处理程序: CORS 405 (Method Not Allowed)
但这没有帮助。
还有一篇关于将 OPTIONSHttpVerb 处理程序移到列表顶部并赋予它“读取”权限的帖子,但这也没有帮助。
编辑 2:实际上移动 OPTIONSHttpVerb 确实有帮助,它不再调用 Web 服务,但 IIS 确实响应 200 - OK。但是,此响应仍会出现在浏览器中的客户端代码中,因此无济于事。
选项响应
rest - 如何处理 GET 请求和(不)更改应用程序状态?
这是关于 GET 方法的一般问题。
想象一下,我需要存储用户选择的最后一个分页大小:
浏览产品列表当然是 GET 请求,更改分页大小也是 GET 请求(我们只更改size
参数):
每次用户更改尺寸时,我都需要在后端存储新尺寸。
如何处理GET不应该改变状态的事实?发出查询(从而改变应用程序的状态)对我来说是错误的。有没有其他选择?
GET 请求指定资源的表示。使用 GET 的请求应该只检索数据并且应该没有其他效果。
symfony1 - Symfony 1.4 中的路由:有没有办法允许 sf_method = OPTIONS 用于预检 HTTP 请求
你们都可能知道浏览器在某些情况下会执行预检 HTTP 请求: https ://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests
我的 Web 应用程序仍在 Symfony1 上。我想实现一个 RESTful 服务,因此使用 Symfony 路由来允许特定的 HTTP 请求方法,如 GET 或 POST ( http://symfony.com/legacy/doc/reference/1_4/en/10-Routing#chapter_10_sub_sf_method )。
例子:
在我看来,不能将 OPTIONS 请求定义/处理为 sf_method 值。因为如果我的想法是正确的,我找不到任何信息,所以我想知道我是否正确,或者我也找不到解决方案。
提前致谢!
c# - 方法名称中的隐式动词
如果我创建一个 webApicontroller
并使用以 http 动词为前缀的方法填充它,则 Api 能够正确地暗示应该在该控制器上使用什么动词。
如果我将 替换为Post
,Update
则 Post 方法将继续隐式工作。
是否有方法上可能的前缀列表以及它们映射到的动词?此外,是否可以定义自定义前缀?例如,如果我想总是将一个以“Search”开头的方法映射到 a Post
,我可以定义这个吗?
ruby-on-rails - 没有模型的资源如何连接到控制器
我正在编写一个抓取数据的基本应用程序。我的routes.rb
.
在控制器中,我有类似的东西,尽管我不确定资源是如何连接到控制器的。
另外,我没有Model
. 这是否意味着在我的资源:apps
中调用 AppsController 中的一个方法apps
?如果我希望它不调用应用程序,那怎么可能?
- rails 中的控制器如何知道它属于哪个路由
- 我正在尝试添加一个 GET /apps?filter=5,它以 JSON 的形式返回我的抓取数据,并使用过滤器作为参数,这意味着向我返回 5 个 JSON 对象
c# - PUT API 请求 -(IIS 媒体服务 API)
我正在尝试完成对 IIS 媒体服务 API 的 PUT 请求 - 尝试将发布点设置为“停止”状态。
我已经阅读了以下链接,这对我没有太大帮助! https://msdn.microsoft.com/en-us/library/hh206014%28VS.90%29.aspx
我当前的代码在 httpWebRequest1.GetResponse() 上抛出异常,这表明 Web 服务器正在返回 401 未经授权的错误代码:
我的用户名/密码被注释掉了,但是在浏览器中访问页面并在打开的用户名/密码表单中输入它们时它们可以正常工作。
My Script 本质上“PUT”是一个 XML 文档,它是在浏览器中访问状态页面时返回的 XML 文档的副本。
任何帮助,将不胜感激。
c# - 在 OWIN TestServer 上调用 HTTP PUT
我一直在尝试使用 OWIN TestServer 类实现集成测试,除了 PUT 或 DELETE 方法的实现之外,一切正常。POST 方法代码(有效)如下所示:
要执行 PUT 请求,我尝试了以下两种方法:
和
SendAsync( " PUT")作为不受支持的方法返回。该参数不是可选的。PostAsync方法忽略HTTPMethod.Put并仍然尝试 POST 动词。
除了 POST 和 GET 之外,我如何使用这些动词和其他动词?
ruby-on-rails - 用于发送电子邮件的正确 HTTP 动词
对于一个简单地让服务器发送电子邮件而不改变整个 webapp 状态的请求,正确的 http 动词是什么?
我正在开发一个 Rails 项目,我需要以某种方式定义路线:
c# - API 中的自定义搜索
我有一个 API 可以自定义搜索超过六个字段,类似于以下内容,但也可能包含敏感数据,因为我在其他地方对相同类型的搜索使用相同的方法
- 用户名
- 电子邮件
- 名
- 姓
- 部门
我通常使用 RESTful 方法,因此对于用户列表或单个用户,检索用户将类似于以下内容
但是,对于搜索,我对如何允许这样做感到有些困惑。我的初衷是在请求正文中使用 JSON,例如
但是,我不能使用看起来合乎逻辑的请求正文(以及用于 POST 等操作),因为据我所知,Chrome 不支持它(或者至少 PostMan 插件不支持,我们用于测试)
因此,执行此搜索的最佳方式是什么?
我看到的选项
使用标题
这似乎是标头的“错误”使用,但也是最接近原始请求正文的
在 URL 中使用参数
例如
但这会使控制器变得混乱(使用 C# Web API),因为我不能将项目留空。所以请求会更像这样,除非我有大量的重写方法来处理不同的排列。这似乎......凌乱
也许更重要的是,它在“肩膀上”留下了太多可见的东西:这是在医疗保健环境中,虽然不可避免地会显示一些东西,但我宁愿将其保持在最低限度(数据本身自然是, SSL 在传输过程中加密)
使用不同的 HTTP 动词
我可以使用 POST 或其他一些动词,它们会起作用,但违反直觉,并且与 RESTful 方法(据我所知)和我自己在项目中的标准背道而驰,因此可能会造成混淆。
有没有其他人遇到过这个?处理它的“官方”或最佳方式是什么?