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

cors - ServiceStack 在 OPTIONS 请求上返回 405

我正在使用 ServiceStack 构建一个 REST Web 服务。我想允许跨域请求,所以我注册了 CorsFeature 插件。

我的 AppHost 如下所示:

然后,当向服务发出 OPTIONS 请求时,会导致 405 Method Not Allowed:

要求:

回复:

编辑


向服务添加一个空的 Options 方法确实可以防止触发 405。但是,响应似乎是空的:

添加以下内容也会给我一个空响应:

我不得不将 httpReq.Method 更改为 httpReq.HttpMethod 并将 httpRes.EndServiceStackRequest() 更改为 httpRes.End()。它是否正确?

0 投票
2 回答
10094 浏览

http - 如何在 nginx 中处理“OPTIONS *”请求?

在我的环境中,我使用 perlbal 将请求重定向到 nginx。如果verify_backend开启。perbal 将向 nginx 发送“OPTIONS *”请求,但 nginx 将其响应为错误请求。

根据RFC2616

如果 Request-URI 是星号 (" "),则 OPTIONS 请求通常适用于 ?server 而不是特定资源。由于服务器的通信选项通常取决于资源,因此“ ”请求仅用作“ping”或“no-op”类型的方法;除了允许客户端测试服务器的功能之外,它什么也不做。例如,这可用于测试代理的 HTTP/1.1 合规性(或不合规性)。

我认为 perlbal 正在尝试发送这种请求,但默认情况下 nginx 无法处理。

当我尝试发送请求“OPTIONS * HTTP/1.0”时,总是收到“HTTP 400 bad request”:

127.0.0.1 - - [18/Feb/2013:03:55:47 +0000]“选项 * HTTP/1.0”400 172“-”“-”“-”

但它适用于没有星号请求的“OPTIONS / HTTP/1.0”选项:

127.0.0.1 - - [18/Feb/2013:04:03:56 +0000]“选项/HTTP/1.0”200 0“-”“-”“-”

如何配置 nginx 让它响应 http return 200 而不是 HTTP return 400 ?

0 投票
2 回答
19094 浏览

codeigniter - Phil Sturgeon 的 Codeigniter Restserver 和 Backbone.js 中的 HTTP OPTIONS 错误

当我尝试将模型保存到位于另一个主机/URL 上的 restful Web 服务时,我backbone.js的应用程序抛出 HTTP OPTIONS not found 错误。

根据我的研究,我从这篇文章中收集到:

一个请求会不断地发送一个 OPTIONS http 请求头,而根本不会触发 POST 请求。

显然,带有“对用户数据造成副作用”的请求的 CORS 将使您的浏览器在实际发送您预期的 HTTP 请求方法之前“预检”带有 OPTIONS 请求标头的请求以检查批准。

我试图通过以下方式解决这个问题:

  • 将 Backbone 中的 emulateHTTP 设置为 true。

Backbone.emulateHTTP = true;

  • 我还允许在标头中允许所有 CORS 和 CSRF 选项。

    header('Access-Control-Allow-Origin: *');
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); header("Access-Control-Allow-Methods: GET, POST, OPTIONS");

Backbone.emulateHTTP引入代码行时应用程序崩溃。

有没有办法响应 CodeIgniter RESTServer 中的 OPTIONS 请求,还有其他替代方法可以允许从谈话的地方禁用此请求吗?


在 Github 上发现了这个作为一种解决方案。我不确定我是否应该使用它,因为它似乎有点过时了。

0 投票
0 回答
268 浏览

java - Web 服务器收到“选项”请求时如何响应?

我想在我的 HTTP Web 服务器中实现 Options 方法。但是我还没有找到这个方法工作的好教程。我做了一个实现这个方法的代码,我的代码在这个问题的末尾。

但我认为我使用的服务器的工作是错误的。你能告诉我服务器在收到选项请求时如何响应的确切方法/步骤吗?等待您的善意回应。

客户代码

服务器代码(我的服务器允许 PUT、POST、GET、HEAD、OPTIONS 方法)

这是服务器响应的正确方式吗?如果不是,请告诉我服务器在收到 Options Request 时是否正常工作?

0 投票
0 回答
403 浏览

asp.net-web-api - 不一致的 ASP.NET Web Api 飞行前选项

我从我的单页应用程序中收到不一致的预检 HTTP 选项请求。这有时只是随机发生,我改善这个问题的唯一方法是按 F5 并且事情会好一段时间,直到我有点“空闲”。

当它发生时,我的 Chrome 网络选项卡如下所示:

在此处输入图像描述

当我的

我的基础设施故障

  • AngularJS 应用程序
  • ASP.NET 网络接口
  • 视觉工作室 2012
  • IIS 7.5
  • Windows 7的

我已经阅读了几篇文章,我的 web.config 的 system.webServer 看起来像这样:

0 投票
2 回答
1113 浏览

http - 如何在 AngularJS 中执行 HTTP 选项请求?

AngularJS 的 $http 服务不提供 HTTP 选项请求,我非常想拥有它们。

我使用 Django REST 框架创建了一个 Web API,并尝试在 AngularJS Web 应用程序中利用它为我提供的所有功能。我的 Django REST api 提供了大量来自 HTTP 选项请求的数据(例如,必填字段、通过超链接从何处获取连接数据等),我想在 Angular 应用程序中利用这些数据。

但是,AngularJS 的 $http 服务似乎不支持本机 Options 请求,这使得这是一个非常烦人的问题......我的意思是,如果它不是内置的,那么解决方法就不会很漂亮。

我尝试了 restangular: 绝对不是我需要的,因为它不允许我提供从 api 以 JSON 格式返回的超链接,如果我正在解析一个“id”的 URL,我会很生气——如果我已经有网址了。

我查看了 angular-django-rest 库:高度不受支持,无法让 PUT 为我的一生工作 b/c 只有一个 $save() 方法,它以某种方式自动选择 POST/PUT (?)。

所以,我很茫然!有谁知道如何在 AngularJS 中获取 HTTP 选项请求?

0 投票
2 回答
1319 浏览

java - 配置 Spring MVC 以将 GET 请求映射到控制器中的一个方法,并将 OPTIONS 请求映射到另一种方法

使用注释会很容易:

但我找不到如何在 XML 中执行此操作。是否有一些映射处理程序会执行以下操作:

任何指针将不胜感激。

0 投票
1 回答
1444 浏览

http - 覆盖 NancyFX / Visual Studio Web 服务器中的 OPTIONS 响应

我已经使用 NancyFX 构建了一个 RESTful Web 服务,我现在正尝试从一个单独的域发布到该服务。当然,当我这样做时,我会在控制台中看到一条失败的 OPTIONS 消息,因为这是一个跨站点 POST,我需要确保 Nancy 正确响应浏览器发送的 OPTIONS 消息。但是,当我在 Nancy 模块中定义路由时:

代码永远不会被击中。我可以在调试器中的 OptionsRequest() 方法上设置断点,并查看代码永远不会被命中。但是我可以在邮递员中发出一个 OPTIONS 请求,然后服务器返回一个响应(有趣的是,它似乎返回了来自所有 URI 的响应,而不仅仅是我定义的 /options/ 路由)。

是否存在我必须覆盖的默认 Nancy OPTIONS 行为才能为 OPTIONS 指定路由,或者这与 Visual Studio Development Web Server (Casini) 中托管的服务有关?我已经尝试了所有我能想到的东西,但我仍然很难理解为什么我不能为这个特定的动词定义行为。

0 投票
1 回答
5119 浏览

rest - 如何在 Spring MVC 中为 REST API 实现 HTTP 'OPTIONS' 动词?

如何在 Spring MVC 中为 REST API 实现 HTTP 'OPTIONS'?还是Spring框架可以根据控制器定义自行发现?是否有支持 REST API 的“OPTIONS”动词的用例?支持 REST API 的“选项”是否常见?

谢谢。

0 投票
2 回答
14109 浏览

django - 使用 django 的内置服务器处理 OPTIONS 请求

我正在尝试使 OPTIONS 请求与 django 一起使用,但我目前只得到 405。我在这里得到的答案是服务器不处理 OPTIONS 请求。

这是处理请求的视图:

我正在使用 jQuery 的 $.ajax() 发送请求。这是chrome的开发工具捕获的网络日志:

  • 请求网址http://localhost
  • 请求方法:选项
  • 状态代码:405 方法不允许

请求标头

  • 接受/
  • 接受编码:gzip、deflate、sdch
  • 接受语言:de,en-US;q=0.8,en;q=0.6
  • 访问控制请求标头:接受、来源、内容类型
  • 访问控制请求方法:PUT
  • 缓存控制:无缓存
  • 连接:保持活动
  • 主持人:傅
  • 产地http://localhost
  • Pragma : 无缓存
  • 推荐人http://localhost/bar
  • 用户代理:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36

响应标头

  • 访问控制允许凭据:真
  • 访问控制允许标头:内容类型、编译指示、缓存控制
  • 访问控制允许方法:POST、GET、OPTIONS、PUT、DELETE
  • 访问控制允许来源http://localhost
  • 允许:发布、获取、选项、放置、删除
  • 内容类型:文本/html;字符集=utf-8
  • 日期:格林威治标准时间 2013 年 8 月 9 日星期五 09:39:41
  • 服务器:WSGIServer/0.1 Python/2.7.4

那么我怎样才能让 django 服务器来处理它呢?