问题标签 [http-options-method]

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 回答
43913 浏览

http - 在 nginx 中处理 OPTIONS 请求

我们目前使用 HAProxy 作为负载均衡器,它会定期向下游框发出请求,以确保它们使用 OPTIONS 请求处于活动状态:

选项 /index.html HTTP/1.0

我正在将 nginx 设置为带有缓存的反向代理(使用 ncache)。出于某种原因,当 OPTIONS 请求进来时,nginx 会返回 405:

192.168.1.10 - - [22/Oct/2008:16:36:21 -0700]“选项/index.html HTTP/1.0”405 325“-”“-”192.168.1.10

直接访问下游网络服务器时,我得到正确的 200 响应。我的问题是:如何让 nginx 将该响应传递给 HAProxy,或者,如何在 nginx.conf 中设置响应?

0 投票
10 回答
388369 浏览

jquery - 为什么我收到的是 OPTIONS 请求而不是 GET 请求?

它向该 URL 发出一个 OPTIONS 请求,然后永远不会用任何东西调用回调。

当它不是跨域时,它工作正常。

jQuery 不应该只使用<script>节点进行调用,然后在加载时进行回调吗?我知道我将无法获得结果(因为它是跨域的),但没关系;我只是想让电话通过。这是一个错误,还是我做错了什么?

0 投票
2 回答
2655 浏览

http - Tomcat,HTTP,选项

注意:我是Tomcat的新手......

我在 Tomcat localhost_access_log 中收到此消息:

127.0.0.1 - - [09/Oct/2009:09:37:30 -0700] “选项 /stl/foo HTTP/1.1”200 -

谁能向我解释 OPTIONS 的来源?我正在使用第 3 方库(DirectJngine),但在仔细阅读源代码时,我看不到任何对此设置的引用。文档暗示它将始终使用 GET 或 POST。选项是Tomcat内部的某种默认值吗?

当我从浏览器执行相同操作时,相同的日志文件会显示更正常的 GET:

127.0.0.1 - - [09/Oct/2009:09:07:24 -0700]“GET /stl/foo HTTP/1.1”500 1805

0 投票
1 回答
5029 浏览

http - (移动)浏览器是否支持跨域资源共享?

我正在构建一个使用w3c CORS向远程服务器发出 oAuth 签名的 HTTP 请求的站点。Mozilla 有一个很棒的文档来解释如何发出和接收 CORS 请求,并且在 firefox、chrome 和 safari 中有很好的支持。

是否有人维护对 CORS 功能的浏览器支持矩阵(例如,跨域非简单 GET 的预检 OPTIONS 请求)?

我对移动浏览器特别感兴趣。谁能指出我跟踪 CORS 支持的资源?

0 投票
1 回答
274 浏览

http - access.log apache 2 中的 Stange 记录

今天我注意到我的 apache 2 网络服务器的访问文件中的 stange 记录

有谁知道这些线是什么意思?

0 投票
5 回答
26846 浏览

wcf - 将 JSON 数据从 JQuery 发送到 WCF REST 方法时出现问题

我在让 jquery 将一些 json 数据发布到我在 WCF 服务上使用的休息方法时遇到了一些麻烦。

在 WCF 方面,这是操作合同:

两者MyResultMyRequest标有所有必要的DataContractDataMember属性,并且服务正在公开 WebHttp 端点。

在 JQuery 方面,这是我的函数调用:

这个请求永远不会到达我的方法(我每次都得到一个 405 Method Not Allowed),并且在 Charles 中查看请求看起来像这样:

一些奇怪的事情:

  1. 该方法是 OPTIONS 而不是 POST
  2. 内容类型(在另一个选项卡中)显示text/html; charset=UTF-8而不是 json
  3. JSON数据无处可见

但是,如果我在 Charles 中修改请求,使其标头与此处的解决方案相似,那么一切正常:

在这里查看教程和其他问题,其他人设法让 JQuery 发布到这样的 WCF REST 方法,我不知道我在这里做错了什么。

哦,举个例子,这是一个 WCF 4 服务,我使用的是 JQuery 1.4.4。

谢谢,

更新:

在阅读了更多内容并感谢 Darrel 将我指向跨域规范之后,我设法通过在服务接口上对我的服务进行一些小的更改来进一步了解:

在实现中,我需要检查传入的请求是否针对 OPTIONS 并在这种情况下返回一些标头而不是执行预期的工作:

然后该方法被调用两次,第一次服务器返回 null 但向客户端添加一些标头,然后使用 POST 作为方法发出实际请求,服务器继续正常处理请求。

0 投票
6 回答
23218 浏览

ajax - 如何在 ASP.NET MVC 中处理“OPTIONS 方法”

我的 Sencha Touch 应用程序正在向我的 WebService 发布一个表单,但不是发送POST它而是发送OPTIONS.

我在这里阅读了一个类似的线程,但我只是不知道如何处理OPTIONS我的代码中的方法。

我确实尝试将[AllowAjax]属性添加到我的操作中,但它似乎在 MVC3 中不存在。

选项 /GetInTouch/CommunicateCard HTTP/1.1
主机:webservice.example.com引用:http
: //192.168.5.206/ 访问控制请求方法:POST
来源:http: //192.168.5.206
用户代理:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.71 Safari/534.24
Access-Control-Request-Headers: X-Requested-With, Content-Type
Accept: /
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

在我的 ActionMethod 中,我使用以下代码。

0 投票
4 回答
7285 浏览

rest - OPTIONS request for restful cross-domain using CORS

On client side I'm using Ajax.post (jquery 1.5) with json. On server side I'm using rest resteasy-jaxrs-2.0.1.GA. I found somewhere that i should add couple of headers to server response and I've done with following filter:

It works fine cause to every single GET response above headers are added. Problem appears when I want to use POST request. When I use Ajax.post, at first server gets OPTIONS request and I've got following error:

Failed executing OPTIONS [REST_PATH] org.jboss.resteasy.spi.DefaultOptionsMethodException: No resource method found for options, return OK with Allow header

To solve above error I was trying to add method invoke with the same path as POST ([REST_PATH]) but with @OPTION annotation. In that case javac told me that symbol :class OPTIONS could not be found, even there is a OPTION.class in attached jaxrs library.

Any ideas to fix it? I would be very grateful for any clues.

0 投票
1 回答
6370 浏览

http - 带有 Javascript 请求的 Http 选项方法

我使用backbone.js 的模型。当我保存模型时,它会将 HTTP OPTIONS 方法发送到 firefox 上的服务器端,但会发送带有 safari 的 HTTP POST 方法。

我知道这不是关于backbone.js 的问题,而是关于CORS 的。我只会在服务器端检查方法、GET、POST、PUT 和 DELETE,我不会使用 HTTP OPTIONS 方法。

我请求的 url 是我的 api:api.foo.com 和从 bar.com 请求的 api

那么,我如何在所有浏览器中控制使用 HTTP POST 而不是 OPTIONS 请求我的 api.foo.com?以及如何与来自任何其他域的所有请求共享 api.foo.com 的内容?

注意: 我已经将响应的标头从服务器端更改为: Access-Control-Allow-Origin: *

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 本身处理?